문제 링크
11650번: 좌표 정렬하기
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
www.acmicpc.net
풀이
const [n, ...coords] = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n");
console.log(
coords
.map(v => ({x: parseInt(v.split(" ")[0]), y: parseInt(v.split(" ")[1])}))
.sort((a, b) => {
if (a.x > b.x) return 1;
else if (a.x < b.x) return -1;
else {
if (a.y > b.y) return 1;
else return -1;
}
})
.map(v => String(v.x) + " " + String(v.y)).join("\n")
);
가독성이 많이 좋지 않지만 내용은 이러하다.
먼저 좌표를 x와 y 프로퍼티를 갖는 객체 배열로 저장하고,
이를 정렬 기준에 맞는 콜백함수로 정렬하고,
"x y" 형태의 문자열로 바꾸어서 연결하여 출력하였다.
'연습장 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준 2108] 통계학 with Python (0) | 2021.04.11 |
---|---|
[백준 10814] 나이순 정렬 with Node.js (0) | 2021.04.10 |
[백준 10815] 숫자 카드 with Python (0) | 2021.04.10 |
[백준 7568] 덩치 with Node.js (0) | 2021.04.09 |
[백준 1181] 단어 정렬 with Node.js (0) | 2021.04.09 |