マンハッタン距離 (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")
);