https://school.programmers.co.kr/learn/courses/30/lessons/132267
[문제 설명]
~생략~
빈 병 a개를 가져다주면 콜라 b병을 주는 마트가 있을 때, 빈 병 n개를 가져다주면 몇 병을 받을 수 있는지 계산하는 문제입니다. 기존 콜라 문제와 마찬가지로, 보유 중인 빈 병이 a개 미만이면, 추가적으로 빈 병을 받을 순 없습니다. 상빈이는 열심히 고심했지만, 일반화된 콜라 문제의 답을 찾을 수 없었습니다. 상빈이를 도와, 일반화된 콜라 문제를 해결하는 프로그램을 만들어 주세요.
콜라를 받기 위해 마트에 주어야 하는 병 수 a, 빈 병 a개를 가져다 주면 마트가 주는 콜라 병 수 b, 상빈이가 가지고 있는 빈 병의 개수 n이 매개변수로 주어집니다. 상빈이가 받을 수 있는 콜라의 병 수를 return 하도록 solution 함수를 작성해주세요.
제한사항
- 1 ≤ b < a ≤ n ≤ 1,000,000
- 정답은 항상 int 범위를 넘지 않게 주어집니다.
[나의 풀이]
def solution(a, b, n):
service = 0
cola = n
while cola >= a:
cc = cola // a
received = cc * b
service += received # 총 받은 콜라 병 수를 누적
cola = cola % a + received # 남은 병 수 계산
return service
*유사문제*
https://todareistodoletsgobokchoy.tistory.com/239
[다른 풀이]
import math
def solution(give, take, init):
return math.ceil((init - give + 1) / (give - take)) * take
설명
https://blog.naver.com/doctorgu/222992407249
'프로그래머스 > 파이썬' 카테고리의 다른 글
폰켓몬_알고리즘(해시) (0) | 2025.01.27 |
---|---|
두 개 뽑아서 더하기 (0) | 2025.01.26 |
푸드 파이트 대회 (1) | 2025.01.24 |
명예의 전당 (1) (0) | 2025.01.23 |
카드 뭉치 (1) | 2025.01.22 |