[프로그래머스] 자바스크립트 - 콜라 문제

멤오장·2023년 3월 6일
1

코딩테스트 연습

목록 보기
7/18

[프로그래머스] 코딩테스트 콜라 문제


문제 설명

우선 콜라 빈 병 20병을 가져가서 10병을 받습니다.
받은 10병을 모두 마신 뒤, 가져가서 5병을 받습니다.
5병 중 4병을 모두 마신 뒤 가져가서 2병을 받고, 또 2병을 모두 마신 뒤 가져가서 1병을 받습니다.
받은 1병과 5병을 받았을 때 남은 1병을 모두 마신 뒤 가져가면 1병을 또 받을 수 있습니다. 이 경우 상빈이는 총 10 + 5 + 2 + 1 + 1 = 19병의 콜라를 받을 수 있습니다.


입출력 예

abnresult
212019
31209
  • 빈 병 20개 중 18개를 마트에 가져가서, 6병의 콜라를 받습니다. 이때 상빈이가 가지고 있는 콜라 병의 수는 8(20 – 18 + 6 = 8)개 입니다.
  • 빈 병 8개 중 6개를 마트에 가져가서, 2병의 콜라를 받습니다. 이때 상빈이가 가지고 있는 콜라 병의 수는 4(8 – 6 + 2 = 4)개 입니다.
  • 빈 병 4 개중 3개를 마트에 가져가서, 1병의 콜라를 받습니다. 이때 상빈이가 가지고 있는 콜라 병의 수는 2(4 – 3 + 1 = 2)개 입니다.
  • 3번의 교환 동안 상빈이는 9(6 + 2 + 1 = 9)병의 콜라를 받았습니다.

문제 풀이

function solution(a, b, n) {
  let answer = 0;
  while (n >= a) {
    answer += Math.floor(n / a) * b;
    n = Math.floor(n / a) * b + n % a;
  }
  return answer;
}

🤍 Math.floor()

  • 소수점 이하 버림
Math.floor(10.1010); // 10

🤍 Math.ceil()

  • 소수점 이하 올림
Math.floor(10.1010); // 11

🤍 Math.round()

  • 소수점 이하 반올림
Math.round(10.1010); // 10
Math.round(10.5010); // 11
profile
일단 적기

0개의 댓글