Javascript - 치킨 쿠폰

이율곡·2023년 7월 11일

Programmers

목록 보기
28/44
post-thumbnail

치킨 쿠폰

문제

프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.

입출력 예

chickenresult
10011
1,081120

접근방법

이 문제는 쿠폰으로 먹은 치킨 수를 구하는 문제다. 주의할 점은 서비스 치킨에도 쿠폰이 발급이 된다는 점을 주의해서 문제를 풀면 된다.

  1. 초기에 시킨 치킨의 수를 쿠폰으로 변환.
  2. 이 쿠폰을 10장 단위로 나눠서 서비스 치킨의 수를 계산. 이때, 나눗셈의 몫은 서비스 치킨의 수이고 나머지는 남은 쿠폰의 수.
  3. 서비스 치킨의 수를 쿠폰에 더해준다. 이는 서비스 치킨에도 쿠폰이 발급되기 때문입니다.
  4. 쿠폰이 10장 이상 남아있으면 다시 2번으로.
  5. 쿠폰이 10장 미만이 되면 서비스 치킨의 총 수를 반환.

풀이

function solution(chicken) {
    let coupon = chicken;
    let service = 0;

    while (coupon >= 10) {
        service += Math.floor(coupon / 10);
        coupon = coupon % 10 + Math.floor(coupon / 10);
    }

    return service;
}

풀이는 위와 같다. 접근방법대로 풀면 된다. 치킨 한 마리 당 쿠폰이 한 장이기 때문에 쿠폰을 치킨 값으로 맞추고 서비스 치킨을 0으로 하고 문제를 풀기 시작하면 된다.

반복문에서는 쿠폰이 10장일 경우에 서비스 치킨을 얻을 수 있기 때문에 while문을 사용해서 10장 이상일 때만 돌 수 있게 했다.

서비스는 쿠폰을 10으로 나눈 몫만 가진다. 그리고 쿠폰은 사용하고 남은 것과 서비스 치킨으로 받은 쿠폰을 더 해준다.

남은 값이 10이 넘으면 다시 반복문을 돌고 반환해주면 된다.


정리하기

이번 문제도 간단한 문제였다. 요 며칠 간의 문제는 기초 트레이닝 문제보다 어렵지 않은 문제들이었다. 그래도 계속 풀면서 코딩에 대한 감각을 익히고 있어서 매우 만족스럽게 공부하고 있다.

profile
음악을 좋아하는 사람이 음악을 만들 듯, 개발을 좋아하게 될 사람이 쓰는 개발이야기

0개의 댓글