λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
κ°œμΈκ³΅λΆ€/Algorithm

[λ°±μ€€][Node.js] 10162번 : μ „μžλ ˆμΈμ§€

by πŸ‡λ°•λ΄‰λ΄‰πŸ‡ 2022. 1. 7.

 

 

Algorithm

-  μ „μžλ ˆμΈμ§€ -

 


 

문제

3개의 μ‹œκ°„μ‘°μ ˆμš© λ²„νŠΌ A B Cκ°€ 달린 μ „μžλ ˆμΈμ§€κ°€ μžˆλ‹€.

각 λ²„νŠΌλ§ˆλ‹€ μΌμ •ν•œ μ‹œκ°„μ΄ μ§€μ •λ˜μ–΄ μžˆμ–΄ ν•΄λ‹Ή λ²„νŠΌμ„ ν•œλ²ˆ λˆ„λ₯Ό λ•Œλ§ˆλ‹€ κ·Έ μ‹œκ°„μ΄ λ™μž‘μ‹œκ°„μ— 더해진닀. λ²„νŠΌ A, B, C에 μ§€μ •λœ μ‹œκ°„μ€ 각각 5λΆ„, 1λΆ„, 10μ΄ˆμ΄λ‹€.

 

λƒ‰λ™μŒμ‹λ§ˆλ‹€ μ „μžλ ˆμΈμ§€λ‘œ μš”λ¦¬ν•΄μ•Όν•  μ‹œκ°„ Tκ°€ μ΄ˆλ‹¨μœ„λ‘œ ν‘œμ‹œλ˜μ–΄ μžˆλ‹€.

μš°λ¦¬λŠ” A, B, C 3개의 λ²„νŠΌμ„ 적절히 λˆŒλŸ¬μ„œ κ·Έ μ‹œκ°„μ˜ 합이 μ •ν™•νžˆ Tμ΄ˆκ°€ λ˜λ„λ‘ ν•΄μ•Ό ν•œλ‹€.

단 λ²„νŠΌ A, B, Cλ₯Ό λˆ„λ₯Έ 횟수의 합은 항상 μ΅œμ†Œκ°€ λ˜μ–΄μ•Ό ν•œλ‹€.

이것을 μ΅œμ†Œλ²„νŠΌ μ‘°μž‘μ΄λΌκ³  ν•œλ‹€. 

 

만일 μš”λ¦¬μ‹œκ°„μ΄ 100초라고 ν•˜λ©΄(T=100) Bλ₯Ό 1번, CλŠ” 4번 λˆ„λ₯΄λ©΄ λœλ‹€.

이와 λ‹€λ₯΄κ²Œ Cλ₯Ό 10번 λˆŒλŸ¬λ„ 100μ΄ˆκ°€ λ˜μ§€λ§Œ 이 경우 10λ²ˆμ€ μ΅œμ†Œ νšŸμˆ˜κ°€ μ•„λ‹ˆκΈ° λ•Œλ¬Έμ΄ 닡이 될 수 μ—†λ‹€.

이 경우 B 1번, C 4번, 총 5번이 μ΅œμ†Œλ²„νŠΌ μ‘°μž‘μ΄λ‹€.

그리고 T=234와 같이 3개의 λ²„νŠΌμœΌλ‘œ μ‹œκ°„μ„ μ •ν™•νžˆ 맞좜 수 μ—†λŠ” κ²½μš°λ„ μžˆλ‹€. 

 

μ—¬λŸ¬λΆ„μ€ 주어진 μš”λ¦¬μ‹œκ°„ T초λ₯Ό λ§žμΆ”κΈ° μœ„ν•œ μ΅œμ†Œλ²„νŠΌ μ‘°μž‘ 방법을 κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•΄μ•Ό ν•œλ‹€. 

 

μž…μΆœλ ₯ μ˜ˆμ‹œ

 

문제 ν’€κΈ°

const readline = require("readline");
const rl = readline.createInterface({
	input: process.stdin,
	output: process.stdout,
});
let input;
rl.on("line", function (line) {
	input = line.toString();
}).on("close", function () {
	if (input.slice(-1) === "0") {
		input = +input;
		let A, B, C;
		A = Math.floor(input / 300);
		input = input % 300;
		B = Math.floor(input / 60);
		input = input % 60;
		C = Math.floor(input / 10);
		input = input % 10;
		console.log(A, B, C);
	} else {
		console.log(-1);
	}
	process.exit();
});

 

 

 

λ°˜μ‘ν˜•

λŒ“κΈ€