728x90
📌 문제
📌 입력
📌 출력 및 예제
📌 풀이
알아야 하는 것
- Math.floor
구할 것
- 그리디로 풀었더니 자꾸 예외가 발생했다.
- 지금 다시 보니 갑자기 예제 2번이 이해가 안 간다.
- 먼저 일단은 고통을 itemB만큼 나눈 몫을 big이라고 한다. 이 때 big을 줄여가면서 남은 pain을 찾는다.
- 남은 pain이 itemA로 딱 나누어 떨어진다면, 그 몫을 small이라고 하고 big과 더해준다.
- 즉 itemB로 나눌 수 있는 최대의 몫과 itemA로 나눌 수 있는 몫을 더해준 것이다.
const readline = require('readline');
let rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
rl.on('line', (line) => {
input.push(line)
if (input.length === 2) {
rl.close();
}
});
rl.on('close', () => {
let pain = Number(input.shift());
let [itemA, itemB] = input[0].split(" ").map(Number)
for (let big = Math.floor(pain / itemB); big >= 0; big--) {
const remain = pain - itemB * big;
console.log(remain)
if (remain % itemA === 0) {
const small = remain / itemA;
console.log(big + small);
return
}
}
console.log(-1)
})
728x90
'⚙️ 코딩테스트' 카테고리의 다른 글
[JavaScript] 구름톤 챌린지 3주차 코딩테스트 : 발전기 (2) (0) | 2023.09.01 |
---|---|
[JavaScript] 구름톤 챌린지 3주차 코딩테스트 : 발전기 (0) | 2023.09.01 |
[JavaScript] 구름톤 챌린지 2주차 코딩테스트 : GameJam (못 품) (0) | 2023.08.31 |
[JavaScript] 구름톤 챌린지 2주차 코딩테스트 : 폭탄 구현하기 (2) (0) | 2023.08.24 |
[JavaScript] 구름톤 챌린지 2주차 코딩테스트 : 통증 (0) | 2023.08.23 |