sm 기술 블로그
79. 11650(좌표 정렬하기) 본문
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