728x90
문제
편의점에서 아르바이트를 하고 있는 중에, 하필이면 피크 시간대에 손님에게 거스름돈으로 줄 동전이 부족하다는 것을 알게 되었습니다. 현재 가지고 있는 동전은 1원, 5원, 10원, 50원, 100원, 500원으로 오름차순으로 정렬되어 있고, 각 동전들은 서로 배수 관계에 있습니다. 동전 개수를 최소화하여 거스름돈 K를 만들어야 합니다. 이때, 필요한 동전 개수의 최솟값을 구하는 함수를 작성해 주세요.
더보기
function partTimeJob(k) {
// TODO: 여기에 코드를 작성하세요.
// k의 값이 500문으로 나눠 떨어지면 리턴 count
// 그렇지 않으면 몫을 count에 더해주고
// 나머지 값을 100으로 나눠 준다.
// 2,3,4를 50, 10, 5, 1로 반복한다.
// let count = 0
// const list = [500, 100, 50, 10, 1]
// for(let value of list){
// count += k / value
// k %= value
// }
// return count
let coin=0;
let k500 = parseInt(k/500) //8
let jandon = k%500 //472
let k100 = parseInt(jandon/100) // 4
jandon = jandon%100 //72
let k50 = parseInt(jandon/50) //1
jandon = jandon%50 //22
let k10 = parseInt(jandon/10) //2
jandon = jandon%10 //2
let k5 = parseInt(jandon/5) //0
jandon = jandon%5 //2
let k1 = parseInt(jandon/1) //2
coin=coin+k500+k100+k50+k10+k5+k1
return coin
}
더보기
function partTimeJob(k) {
let result = 0;
const wallet = [500, 100, 50, 10, 5, 1];
for(let i = 0; i < wallet.length; i++) {
if(k > 0) {
const sum = Math.floor(k / wallet[i]);
result += sum;
k = k - (wallet[i] * sum);
}
}
return result;
}
728x90
'코플릿 > 알고리즘' 카테고리의 다른 글
06_[순열] 새로운 치킨 소스 레시피 (0) | 2021.12.07 |
---|---|
05_rockPaperScissors (0) | 2021.12.07 |
03_[구현] 보드 게임 (0) | 2021.12.07 |
01_[Greedy] 짐 나르기 (0) | 2021.12.07 |
자바스크립로 구현하는 스택 (0) | 2021.10.09 |