[프로그래머스] 콜라 문제 풀이(코딩테스트 입문 Lv. 1) - 파이썬 python

2022. 12. 15. 19:15네카라쿠배 취준반 - 프로그래머스 문제 풀이

0. 자세한 설명은 YouTube 영상으로

 

1. 가장 단순한 풀이

def solution(a, b, n):
    answer = 0
    # 1. 빈 병의 개수 n이 교환 가능한 최소 숫자 a 이상일 때까지 반복
    while n >= a:
        # 2. b개의 병 추가
        answer += b
        # 3. 남은 병 계산하기
        n = n - a + b
    return answer

 

 

 

2. 최적화된 풀이

def solution(a, b, n):
    answer = 0
    # 1. 빈 병의 개수 n이 교환 가능한 최소 숫자 a 이상일 때까지 반복
    while n >= a:
        # 2. 현재 빈 병으로 받을 수 있는 새로운 개수 및 나머지 계산
        newCount = n // a * b
        leftover = n % a
        
        # 3. 정답 반영 및 빈 병 개수 다시 계산
        answer += newCount
        n = leftover + newCount
    return answer

 

 

3. YouTube 영상에 자세한 내용을 정리했으니 참고하세요