1
0

More than 1 year has passed since last update.

paizaラーニング レベルアップ問題集 ソートメニュー応用編 JavaScript マンハッタン距離

Last updated at Posted at 2022-09-13

マンハッタン距離 (paizaランク B 相当)

を解いてみました。
sort関数内で、比較する変数 a, bについて、それぞれマンハッタン距離を求めます。昇順に並べ替えるので、return (aのマンハッタン距離) - (bのマンハッタン距離);とします。

JavaScript
const fs = require("fs");
const input = fs.readFileSync("/dev/stdin", "utf-8").trim();
const lines = input.split("\n");
//n 個の点を原点とのマンハッタン距離が昇順になるように並び替え、改行区切りで出力
console.log(
    lines.slice(1).map(line => line.split(" ").map(Number)).sort((a, b) => {
        //マンハッタン距離で昇順にソート
        return Math.abs(Math.abs(a[0]) + Math.abs(a[1])) - 
            Math.abs(Math.abs(b[0]) + Math.abs(b[1]));
    })
    //改行区切りで出力
    .map(pair => pair.join(" ")).join("\n")
);
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