ソート《Cランク UP メニュー》

Cランクレベルアップメニュー【昇順ソート・降順ソート・辞書式ソート・ソート】

【STEP: 1】コード

reader.on('close', () => {
   const N = Number(lines[0]);
   const A = new Array(N);
   for (let i = 0; i < N; i++) {
      A[i] = Number(lines[i + 1]);
   }
   A.sort((s, b) => s - b);  // 小さい順に並替え
   A.forEach(value => {
      console.log(value);  // 改行区切りで出力
   });
});
hogeちゃんの画像

A.sort((s, b) => s - b)で 値 の小さい順に並替え。

【STEP: 2】コード

reader.on('close', () => {
   const N = Number(lines[0]);
   const A = new Array(N);
   for (let i = 0; i < N; i++) {
      A[i] = Number(lines[i + 1]);
   }
   A.sort((s, b) => b - s);  // 大きい順に並替え
   A.forEach(value => {
      console.log(value);  // 改行区切りで出力
   });
});
hogeちゃんの画像

A.sort((s, b) => b - s)で 値 の大きい順に並べ替え。

【STEP: 3】コード

reader.on('close', () => {
   const N = Number(lines[0]);
   const A = new Array(N);
   for (let i = 0; i < N; i++) {
      A[i] = lines[i + 1].split(' ').map(Number);
   }
   A.sort((s, b) => b[1] - s[1]);  // A[i][1]を基準に大きい順に並替え
   A.sort((s, b) => b[0] - s[0]);  // A[i][0]を基準に大きい順に並替え
   A.forEach(value => {
      console.log(...value);
   });
});
hogeちゃんの画像

先ず A[i][1] を基準に並べ替えて  次に A[i][0] を基準に並べ替えれば OK でした。

【FINAL】コード

reader.on('close', () => {
   const N = Number(lines[0]);
   const A = new Array(N);
   for (let i = 0; i < N; i++) {
      A[i] = lines[i + 1].split(' ').map(Number);
   }
   A.sort((s, b) => b[0] - s[0]);  // A[i][0]を基準に大きい順に並替え
   A.sort((s, b) => b[1] - s[1]);  // A[i][1]を基準に大きい順に並替え
   A.forEach(value => {
      console.log(...value);
   });
});
hogeちゃんの画像

こちらは先に A[i][0] を基準に並べ替えて 次に A[i][1] を基準に並べ替えてました。

コメント