개발관련/매일 코딩 테스트 챌린지

자바스크립트 코딩테스트 구름 거스름돈

개발자 Dane 2023. 7. 6. 21:17
반응형

거스름돈 문제 

거스름돈 문제 

 

구름LEVEL

구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입

level.goorm.io

 

 

솔루션

// Run by Node.js
const readline = require('readline');

(async () => {
	let rl = readline.createInterface({ input: process.stdin });
	let value = 0
	for await (const line of rl) {
		value = Number(line)
		rl.close();
	}
	
	const coins = [40,20,10,5,1]
	let coinCount = 0 
	let rest = value
	
	for(let i = 0; i < coins.length; i++){
		coinCount += Math.floor(rest / coins[i])
		rest = rest % coins[i]
		if(rest == 0){
			break
		}
	}
	
	console.log(coinCount)
	
	
	
	process.exit();
})();

 

배운 점

Math.floor를 이용해서 몫을 구했습니다.

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/floor

 

Math.floor() - JavaScript | MDN

Math.floor() 함수는 주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환합니다.

developer.mozilla.org

Math.floor() 함수는 주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환합니다.

 

왜 이렇게 어렵게 설명하는지 모르겠습니다. 

 

정수자리만 남기고 소수점이하 자리는 버린다.

근데 이렇게 외우면 음수 일때 헷갈립니다. 

Math.floor(-2);  // 결과 : -2
Math.floor(-2.6); // 결과 : -3

 

 

더 작은수에 가깝게 내려서 정수로 변경한다.

 

이렇게 외워보겠습니다.

반응형