문제 번호
알고리즘 분류
정렬
문제 풀이
C++ 에서 처럼 구조체를 사용하여 좌표들을 입력받은 후 정렬을 해주려고했다. 하지만 JS에는 구조체가 존재하지 않는다. function과 배열을 사용하여 C++에서의 구조체 배열처럼 사용할 순 있지만 그렇게 할 경우 시간초과에 걸린다.
그래서 filter 매서드를 사용하여 입력을 받았다.
const fs = require('fs');
const input = fs.readFileSync('dev/stdin').toString().trim().split('\n');
const N = Number(input.shift());
const xy = input.filter((v, i) => i >= 0).map((v) => v.split(' '));
이후엔 sort 함수를 사용하여 정렬을 진행해주고 출력해주면 된다. sort함수는 O(NlogN)이다.
let answer = '';
xy.sort((a, b) => {
if (a[0] === b[0])
return a[1] - b[1];
else
return a[0] - b[0];
})
.forEach(arr => {
answer += `${arr[0]} ${arr[1]}\n`
});
console.log(answer);
전체코드
const fs = require('fs');
const input = fs.readFileSync('dev/stdin').toString().trim().split('\n');
const N = Number(input.shift());
const xy = input.filter((v, i) => i >= 0).map((v) => v.split(' '));
let answer = '';
xy.sort((a, b) => {
if (a[0] === b[0])
return a[1] - b[1];
else
return a[0] - b[0];
})
.forEach(arr => {
answer += `${arr[0]} ${arr[1]}\n`
});
console.log(answer);
특이사항
'Algorithm > BaeKJoon' 카테고리의 다른 글
[JS][백준]21608_상어 초등학교 (0) | 2021.09.09 |
---|---|
[JS][백준]20055_컨베이어 벨트 위의 로봇 (0) | 2021.09.09 |
[JS][백준]2108_통계학 (0) | 2021.08.24 |
[JS][백준]1260_DFS와 BFS (0) | 2021.08.24 |
[JS][백준]1436_영화감독 숌 (0) | 2021.08.19 |