https://www.acmicpc.net/problem/7568
처음에 너무 복잡하게 생각했다! (코드를 보면 아주 복잡하다) 그리고 길고, 시간도 오래 걸려 결국 실패!
풀이를 찾아보니 아 이래서 브루트 포스 문제라고 하구나를 알게 되었다!
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().split('\n');
let arr = [];
for(let i = 1; i <= +input[0]; i++){
arr.push({name : i, weight: +input[i].split(' ')[0], height: +input[i].split(' ')[1]})
}
let rank = 1;
arr.sort((a, b) => b.weight - a.weight);
arr.map((val, i) => val.weightRank = i + 1);
arr.sort((a, b) => b.height - a.height);
arr.map((val, i) => val.heightRank = i + 1);
arr.map((val, i) => val.score = val.weightRank + val.heightRank);
arr.sort((a, b) => a.score - b.score);
console.log(arr)
for(let i = 0; i < arr.length; i++){
if(i < 1){
rank = i + 1;
arr[i].rank = rank;
}else{
if(arr[i].score === arr[i-1].score){
arr[i].rank = rank;
}else{
rank = i + 1;
arr[i].rank = rank;
}
}
}
arr.sort((a, b) => a.name - b.name);
console.log((arr.map((val) => val.rank)).join(' '));
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().split('\n');
let len = input.shift();
const kgCmTable = input.map(kgCm => kgCm.split(' ').map(num => +num));
let arr = [];
for(let i = 0; i < len; i++){
let count = 1;
for(let j = 0; j < len; j++){
if(i === j){
continue;
}
if(kgCmTable[i][0] < kgCmTable[j][0] && kgCmTable[i][1] < kgCmTable[j][1]){
count++
}
}
arr.push(count);
}
console.log(arr.join(' '));
참으로 어거지로 풀긴했다는 생각이 들었다...
뭔가 2수를 비교하는걸 어떻게 해야하나 고민이 많았는데, 정답풀이를 보니 생각보다 간단해서 맥이 조금 빠졌다... 내가 실력이 늘고 있나? 긴가 민가하다 ... 뭐 그래도 늘고 있겠지라고 생각하고 꾸준하게 풀어야겠다!