알고리즘/백준

[백준] js 11650

프흐프좋아 2024. 2. 12. 17:13

해당 문제는 

js의 구조분해할당(Destructuring_assignment) 개념을 알고 있으면 수월하게 풀 수 있을 것 같다

x,y 좌표를 한번에 받아서 가지고 있어야하는데

[x,y] 라는 형태로 저장하려면 구조분해할당개념을 알고 있으면 수월하게 처리가 가능하다

 

그리고 js의 sort 함수는

함수내에 compare()함수를 통해서 내가 원하는 방식으로 내림차순 or 오름차순을 사용할 수 있는데

x 좌표가 같은 경우는 y 좌표를 통해서 검증하는 내용을 놓치지 않으면 쉽게 풀 수 있을 것 같다

// readline 모듈보다는 fs를 이용해 파일 전체를 읽어 들여 처리하기
const fs = require('fs')

const getInput = (filePath) => {
    return fs
        .readFileSync(filePath)
        .toString()
        .trim()
        .split(/\n/);
    }

const input = getInput('/dev/stdin'); // 제출시 여기 '/dev/stdin' 으로 변경

let count = Number(input[0]);
let data = new Array();
let answer = "";

for(let i = 1; i <= count ; i ++){
    let [x,y] = input[i].split(' ').map(Number); // 구조 분해 할당
    data.push([x,y]);
}

function compare(a,b)
{
    if(a[0] != b[0]) return a[0] - b[0];
    else return a[1] - b[1];
}

data.sort(compare);

for(let f of data)
{
    answer += f[0] + " " + f[1] + "\n";
}

console.log(answer);