728x90
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/132267
풀이
def solution(a, b, n):
answer = 0
# 단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다.
# 빈 병의 개수가 콜라를 받기 위해서 필요한 개수보다 크면 반복한다
while (n >= a):
remain_bottle = n % a
n = (n//a) * b # 마트에서 받은 콜라의 수
answer += n # 받은 걸 answer에 +
n += remain_bottle # 남아있는 병을 더해줘서 다음에 마트갈 때 이용
return answer
1. n을 a로 나눠주면 남아있는 remain_bottle이 구해진다.
2. (n//a) * b 를 해주면 마트에서 받은 콜라의 수가 나온다.
3. 이 콜라의 수를 answer에 더해준다.
4. 이 후 남아있는 병을 더해줘서 다음 while에 활용한다.
++ 다시 풀어본 후기
def solution(a, b, n):
answer = 0
while n >= a:
# 마트에 가져가고 남은 빈 병
remain = n % a
# 빈 병을 내서 새로 받은 콜라 개수
new = (n // a) * b
answer += new
# 현재 병 개수는 남은 빈 병 + 새로 받은 콜라
n = new + remain
return answer
728x90
'코딩테스트 > PYTHON' 카테고리의 다른 글
[프로그래머스][PYTHON] Lv. 1 시저 암호 (0) | 2024.08.20 |
---|---|
[프로그래머스][PYTHON] Lv. 1 삼총사 (0) | 2024.08.20 |
[프로그래머스][PYTHON] Lv. 1 [1차] 비밀지도 (0) | 2024.08.14 |
[프로그래머스][PYTHON] Lv. 1 공원 산책 (0) | 2024.08.13 |
[프로그래머스][PYTHON] Lv. 1 이상한 문자 만들기 (0) | 2024.08.08 |