// 올림픽
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
const arr = fs.readFileSync(filePath).toString().trim().split("\n");
const [n, k] = arr[0].split(" ").map(Number);
let m = [];
for (let i = 1; i <= n; i++) {
let l1 = arr[i].split(" ").map(Number);
m.push(l1);
}
m.sort((a, b) => { // 메달에 맞춰 정렬
if (a[1] !== b[1]) {
return b[1] - a[1];
}
if (a[2] !== b[2]) {
return b[2] - a[2];
}
return b[3] - a[3];
});
let rank = 1;
if (m[0][0] === k) { // k가 정렬된 m의 첫번째에 있을 때 (1위인 경우)
console.log(rank);
} else { // 아닌 경우
for (let i = 1; i < n; i++) {
const [prev, pg, ps, pb] = m[i - 1];
const [cur, cg, cs, cb] = m[i];
// 금메달, 은메달, 동메달 개수에 따라 rank = i + 1
// 자신보다 잘한 나라 수(m이 정렬되어 있으므로 i와 같음) + 1
// 이전과 금은동 모두 동일한 경우 i-1에서 계산된 등수가 출력됨
if (pg > cg) rank = i + 1;
else if (ps > cs) rank = i + 1;
else if (pb > cb) rank = i + 1;
if (cur === k) {
console.log(rank);
break;
}
}
}
원래는 rank
라는 배열에 메달 비교해서 각 나라의 등수를 집어넣는 식으로 구현했는데 점점 까다로워지고,, 놓치는 것도 생기고 그래서.. 결국 아래 블로그 참고해서 풀었다... 나중에 다시 풀어봐야겠다..