덩치 - javascript

DonQ·2022년 5월 17일
0

CodingTest

목록 보기
33/33
post-thumbnail

문제 (출처)

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수를 비교하는걸 어떻게 해야하나 고민이 많았는데, 정답풀이를 보니 생각보다 간단해서 맥이 조금 빠졌다... 내가 실력이 늘고 있나? 긴가 민가하다 ... 뭐 그래도 늘고 있겠지라고 생각하고 꾸준하게 풀어야겠다!

profile
꾸준히 쌓아가는 코딩 Study

0개의 댓글

관련 채용 정보