Algorithm problem-Greedy02

EBinY·2022년 1월 24일
0

AP - Algorithm Problem

목록 보기
41/55
  1. 문제
  • 편의점에서 동전을 거슬러 주려고 할 때, 최소한의 갯수를 리턴
  • 권액은 500,100,50,10,5,1이 있다
  1. 시도
  • 수도코드를 참조하자
  1. 수도코드
function partTimeJob(k) {
  // 거스름돈으로 준 동전을 세어줄 카운터 선언
  let cnt = 0;
  // 동전의 권액을 저장한 배열 선언
  let coins = [500,100,50,10,5,1];
  // 권액으로 나눠준 횟수를 카운터에 저장하고
  // 가장 큰 권액부터 나눠주고 난 나머지를 다음 권액이 나누고 계속 이어 받도록
  for (let i = 0; i < coins.length; i++) {
    if (k > 0) {
      cnt = cnt + parseInt(k / coins[i]);
      k = k % coins[i];
    }
  }
  return cnt;
}
  1. 레퍼런스
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;
}

0개의 댓글

관련 채용 정보