Notice
Recent Posts
Recent Comments
Link
관리 메뉴

윤일무이

[JavaScript] 구름톤 챌린지 3주차 코딩테스트 : 통증(2) 본문

⚙️ 코딩테스트

[JavaScript] 구름톤 챌린지 3주차 코딩테스트 : 통증(2)

썸머몽 2023. 8. 31. 14:46
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