sm 기술 블로그

79. 11650(좌표 정렬하기) 본문

문제/백준_자바스크립트

79. 11650(좌표 정렬하기)

sm_hope 2022. 6. 15. 13:34
let input = require('fs').readFileSync(0).toString().trim().split("\n");

let N = input[0];

input.shift();

let inputArr = input.map(num => num.split(" ").map(nums => parseInt(nums)));
let result = "";

//sort 함수 오버라이딩
inputArr.sort((a, b) => {
    if(a[0] != b[0]){
        return a[0] - b[0];
    }
    return a[1] - b[1];
}).forEach(inputArr => {
    result += inputArr[0] +" "+ inputArr[1] + "\n";
});

console.log(result);

먼저 input은 문자열의 형태로 들어와 -1은 정수가 아니라 문자열로 인식한다.

그래서 input[0] 은 '-'가되고 input[1]은 '1'이 된다.

 

let inputArr = input.map(num => num.split(" ").map(nums => parseInt(nums)));

들어온 값을 공백 기준으로 쪼개고 숫자로 바꿔서 inputArr에 저장한다.

inputArr.sort((a, b) => {
    if(a[0] != b[0]){
        return a[0] - b[0];
    }
    return a[1] - b[1];
})

만약 a[0] (input[i][0]) 와 b[0] (input[i][1])가 같지 않다면 이 둘을 비교해서 정렬하고

.forEach(inputArr => {
    result += inputArr[0] +" "+ inputArr[1] + "\n";
});

(a가 더 작으면 a가 앞으로[음수] 0이면 그대로 b가 더 크면 b가 앞으로[양수]) 오름차순으로 정렬된다.

 

'문제 > 백준_자바스크립트' 카테고리의 다른 글

81. 1181(단어정렬)  (0) 2022.06.17
80. 11651(좌표 정렬하기2)  (0) 2022.06.16
78. 1427(소트인사이드)  (0) 2022.06.14
77. 2108(통계학)  (0) 2022.06.14
76. 2752 (수 정렬하기2)  (0) 2022.06.13
Comments