1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

paizaラーニング レベルアップ問題集 ソートメニュー応用編 JavaScript ソートの基本

Last updated at Posted at 2022-09-12

ソートの基本 (paizaランク C 相当)

解いてみました。問題文に従って、a_1 ≦ a_2 ≦ ... ≦ a_n かどうか判定します。

解答コード例

JavaScript
const fs = require("fs");
const input = fs.readFileSync("/dev/stdin", "utf-8").trim();
const lines = input.split("\n");
//数列の長さを表す整数 n 
const n = Number(lines[0]);
//数列 a
const a = lines[1].split(" ").map(Number);
//a_1 ≦ a_2 ≦ ... ≦ a_n かどうか判定
let flag = true;
for (let i = 0; i < n - 1; i++) {
    if (a[i] > a[i + 1]) {
        flag = false;
        break;
    }
}
//a が昇順でソートされている場合は Yes を、そうではない場合は No を出力
if (flag) {
    console.log("Yes");
} else {
    console.log("No");
}

別解で、sliceやsort,everyや三項演算子を用いて解いてみました。

別解
const fs = require("fs");
const input = fs.readFileSync("/dev/stdin", "utf-8").trim();
const lines = input.split("\n");
//数列の長さを表す整数 n 
const n = Number(lines[0]);
//数列 a
const a = lines[1].split(" ").map(Number);

//数列 a が昇順でソートされた状態 aSorted
  //slice()でコピーを作り、数列aと連動しないようにする
const aSorted = a.slice().sort((a, b) => a - b);

//a が昇順でソートされている場合は Yes を、そうではない場合は No を出力
console.log(a.every((v, i) => v === aSorted[i]) ? "Yes" : "No");
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?