TIL34-02 오늘의 코딩테스트

김태혁·2023년 2월 16일
0

TIL

목록 보기
106/205

치킨 쿠폰

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

chicken result
100 11
1,081 120

풀이 과정

  • 주어진 치킨은 곧 쿠폰 수이고, 쿠폰이 10장일 때 1마리씩 서비스를 받는다.
  • 즉, 주어진 치킨/10 했을 때, 몫이 서비스 치킨이다.
  • 그리고 몫만큼 다시 쿠폰이 발급된다. 치킨/10 나머지는 남은 쿠폰이다.
    -즉, 치킨/10의 몫은 서비스 치킨 그만큼 다시 쿠폰 수가 된다.
  • 이 과정을 반복 시키고 치킨수가 10마리 밑으로 떨어지면 더이상 서비스를 받을 수 없다.

풀이 코드

function solution(chicken) {
    let 서비스치킨 = 0;
    while (chicken >= 10) { 
        서비스치킨 += parseInt(chicken / 10); //치킨을 10으로 나눈 몫을 서비스치킨에 계속 더해준다.
        chicken = (chicken % 10) + parseInt(chicken / 10);
      //위의 몫만큼 다시 쿠폰이 되고, 나머지 쿠폰과 함께 다시 위의 식으로 반복 해준다.
    }
    return 서비스치킨; //쿠폰수가 10장일 때 식이 종료가 되고, 최종적으로 받은 서비스 치킨수를 반환한다.
}
profile
도전을 즐기는 자

0개의 댓글