필요없는 목록/코딩테스트

난이도 0단계 : 치킨 쿠폰 33 / 50

비밀안 2023. 6. 18. 20:29
클릭

버튼을 클릭하면 명언이 나와요

-

이름이 나와요

치킨 쿠폰

●100마리를 주문하면 쿠폰이 100장 발급되므로 서비스 치킨 10마리를 주문할 수 있습니다.

●10마리를 주문하면 쿠폰이 10장 발급되므로 서비스 치킨 1마리를 주문할 수 있습니다.

●따라서 10 + 1 = 11을 return합니다.

 

●1081마리를 주문하면 쿠폰이 1081장 발급되므로 서비스 치킨 108마리를 주문할 수 있습니다. 그리고 쿠폰이 1장 남습니다.
●108마리를 주문하면 쿠폰이 108장 발급되므로 서비스 치킨 10마리를 주문할 수 있습니다. 그리고 쿠폰이 8장 남습니다.
●10마리를 주문하면 쿠폰이 10장 발급되므로 서비스 치킨 1마리를 주문할 수 있습니다.
●1마리를 주문하면 쿠폰이 1장 발급됩니다.
●가지고 있는 쿠폰이 총 10장이므로 서비스 치킨 1마리를 추가로 주문할 수 있습니다.
●따라서 108 + 10 + 1 + 1 = 120 을 return합니다.

코드

function solution(chicken) {
    // 쿠폰은 치킨 수 만큼
    let coupon = chicken
    // 서비스 받은 치킨 수
    let service = 0
    // 쿠폰이 10개 이상이라면
    while(coupon >= 10) {
        // 쿠폰을 10으로 나눈 몫만큼 서비스 치킨 추가
        service+=coupon/10 << 0
        // 남은 쿠폰 = coupon%10, 서비스로 주문한 치킨의 쿠폰 수 = coupon/10
        coupon = coupon%10 + coupon/10 << 0
    }
    return service
}

이런 말을 하면 안되지만....

설명을 듣다가 무슨 멍멍이 소리인가? 싶었다.

100마리를 주문하면 쿠폰이 10개이다.. 근데 10개로 추가로 1마리를 시킬수 있어서 11까지는 이해가 갔다.

1081마리에서 이해가 안갔다.

1081마리 그럼 쿠폰으로는 108개.. 그럼 추가로 10개 주문이 가능해서 118개이다.

근데. 다시 쿠폰 10개가 추가로 오니간 119개이다.

근데 저게 120개라고 주장한다.

(남은 1개는 반올림 하라는건가? ㅠ_ㅠ..머리가 안되네요.)

머리가 뜨끈 해지기 시작했습니다.

●으으. 남은 1개의 쿠폰을 못 구해서. 결국 해답지를 참고해버렸네요.

결과