728x90
문제
https://level.goorm.io/exam/195687/%EC%9D%B4%EC%A7%84%EC%88%98-%EC%A0%95%EB%A0%AC/quiz/1
풀이
이 문제는 정렬 sorting 문제다.
주어진 숫자들을 정렬을 해주는데, 조건이 있다.
- 2진수로 변환하여 1의 갯수로 내림차순 정렬한다.
- 1의 개수가 같다면, 원래 10 진수로 정렬한다.
이 조건들을 다중 조건 정렬을 이용해 정렬을 진행했다.( || 을 이용 )
코드
const readline = require('readline');
let rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
rl.on('line', (line) => {
input.push(line.split(' ').map(Number));
})
rl.on('close', () => {
const [n, k] = input.shift();
const arr = input[0];
const withBinary = arr.map(e => [e, e.toString(2).split('').filter(e => e === '1').length]);
console.log(withBinary.sort((a, b) => b[1] - a[1] || b[0] - a[0])[k-1][0]);
process.exit();
})
728x90
'코딩 테스트 > 구름 Goorm' 카테고리의 다른 글
[Node.js] 구름 Level 3_ 단풍나무 (0) | 2024.06.15 |
---|---|
[Nodejs] 구름_사은품 교환하기 (0) | 2024.06.13 |
[Node.js] 단어장 만들기 (0) | 2024.06.12 |
[Node.js] 구름이의 취미 (0) | 2024.06.12 |
[난이도 2] 장마 (0) | 2024.06.11 |