[백준] 10825 국영수 JavaScript (Node.Js)

0

Problem Solving

목록 보기
43/49
post-thumbnail

문제

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

풀이

문제에서 제시된 조건에 따라 정렬을 하면된다.
오름차순일 경우 a < b 를 -1로 두고 내림차순일경우 1,
a === b 일경우 다음 조건을 검사해서 sort하게 된다.

Node.js로 제출할때 주의할 점은 반복문을 이용해서 출력을 하면 안된다는 것이다. console.log가 굉장히 시간이 걸리는 작업이기 때문에 join을 사용해 출력하도록 하자.

const [n, ...input] = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n");
let answer = new Array();
input.map((e) => e.split(" ")).forEach((e) => answer.push({ 
    name: e[0], 
    korean: Number(e[1]), 
    english: Number(e[2]), 
    math: Number(e[3]) 
}));

answer = answer.sort((a, b) => {
    if (a.korean > b.korean) return -1;
    if (a.korean < b.korean) return 1;
    if (a.english > b.english) return 1;
    if (a.english < b.english) return -1;
    if (a.math < b.math) return 1;
    if (a.math > b.math) return -1;
    if (a.name > b.name) return 1;
    if (a.name < b.name) return -1;
});
answer = answer.map((e) => e.name);
console.log(answer.join("\n"));

0개의 댓글