좌표 정렬하기, Node.js

cptkuk91·2023년 3월 6일
1

Algorithm

목록 보기
152/161

문제

https://www.acmicpc.net/problem/11650

코드

const input = require("fs").readFileSync("/dev/stdin", "utf-8").trim().split("\n");

const p = input.shift();

let tmpArr = [];

for(let i = 0; i < input.length; i++){
    tmpArr.push(input[i].split(" ").map(Number));
}

let result = "";
tmpArr.sort((a, b) => {
    if(a[0] === b[0]){
        return a[1] - b[1];
    }
    return a[0] - b[0];
}).forEach((item) => {
    result += (`${item[0]} ${item[1]}\n`);
})

console.log(result);

풀이

우선 입력받은 값에서 첫 값은 단순 갯수이기 때문에, shift()를 통해 제거했습니다.
이후 임시 배열 tmpArr을 선언해 모든 값을 넣어줬고, 번호로 출력하기 위해 .map(Number)를 통해 숫자로 변환했습니다.
임시배열에 넣어준 값을 sort했습니다. 이때 x의 값이 같다면 y의 값을 오름차순으로 정렬하기 때문에 if(a[0] === b[0])은 return a[1] - b[1]을 했고, 아니라면 return a[0] - b[0]을 통해 x의 값을 정렬했습니다. 이후 forEach를 통해 백준 문제 요구사항에 맞춰 출력하였습니다.

forEach

forEach() 메서드는 주어진 함수를 배열 요소 각각에 대해 실행합니다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글