[프로그래머스_Lv1] 콜라 문제

ybk·2025년 2월 12일
0

프로그래머스

목록 보기
240/245

Lv.1) 콜라 문제


문제 설명 📝


입출력 예시 📌

abnresult
212019
31209

코드 풀이 💡

def solution(a, b, n):
    answer = 0
    
    while (n >= a):
        remain_bottle = n % a
        n = (n//a) * b # 마트에서 받은 콜라의 수
        answer += n # 받은 걸 answer에 +
        n += remain_bottle # 남아있는 병을 더해줘서 다음에 마트갈 때 이용
    return answer

🔍 코드 설명

  • n개의 빈 병을 가지고 마트에 가서 a개의 빈 병으로 b개의 새 병을 교환할 때, 받을 수 있는 총 콜라의 수를 계산하는 함수입니다.
  1. n개의 빈 병을 가지고 교환을 시작합니다.
  2. 교환이 가능한 동안:
    • n // a로 교환할 수 있는 콜라의 수를 계산하고, b배 만큼 콜라를 받습니다.
    • 받은 콜라의 수를 answer에 추가합니다.
    • 교환 후 남은 빈 병은 remain_bottle로 저장하고, 다음 교환에 사용할 수 있도록 n에 더합니다.
  3. 교환할 수 없을 때까지 반복하고, 총 받은 콜라의 수를 반환합니다.

다른 사람의 풀이 ✨

solution = lambda a, b, n: max(n - b, 0) // (a - b) * b

✅ 다른 풀이의 특징

  • max(n - b, 0) : 처음에 가진 빈 병에서 한 번 교환했을 때 받을 수 있는 콜라의 수를 계산합니다.
  • (n - b) // (a - b) : 빈 병이 a개에서 b개로 교환될 때마다 a - b만큼 실제로 교환이 가능하다는 점을 고려하여 교환 횟수를 계산합니다.

🔗 프로그래머스 문제 링크

profile
개발자 준비생~

0개의 댓글

관련 채용 정보