[문제 링크] 👇
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
아래의 표를 보면 몫과 나머지를 이용해 값을 구할 수 있다.
빈 병 a 개 반납 | b 병 계산 | 콜라 b 병 받기 | 보유 중인 빈 병 a 개 | |
① | 20 / 2 = 10 | 10 x 1 = 10 | answer = 10 | n = 10 + (20 % 2) = 10 |
② | 10 / 2 = 5 | 5 x 1 = 5 | answer = (10 + 5) = 15 | n = 5 + (10 % 2) = 5 |
③ | 5 / 2 = 2 | 2 x 1 = 2 | answer = (15 + 2) = 17 | n = 2 + (5 % 2) = 3 |
④ | 3 / 2 = 1 | 1 x 1 = 1 | answer = (17 + 1) = 18 | n = 1 + (3 % 2) = 2 |
⑤ | 2 / 2 = 1 | 1 x 1 = 1 | answer = (18 + 1) = 19 | n = 1 + (2 % 2) = 1 |
⑥ | n > a 이므로 루프 종료 |
보유 중인 빈 병이 a 개 미만이면 루프를 종료한다.
Solution
def solution(a, b, n):
answer = 0
while n >= a:
new_bottles = (n // a) * b
answer += new_bottles
n = new_bottles + (n % a)
return answer
👩💻 회고
✅ 2024.11.09 재풀이
'프로그래머스 코딩테스트 > Level 1' 카테고리의 다른 글
[Programmers] L1. [1차] 비밀지도 (Python) (1) | 2024.11.12 |
---|---|
[Programmers] L1. 푸드 파이트 대회 (Python) (0) | 2024.11.11 |
[Programmers] L1. 모의고사 (완전탐색/Python) (0) | 2024.11.06 |
[Programmers] L1. 문자열 내 마음대로 정렬하기 (Python) (1) | 2024.11.06 |
[Programmers] L1. 가장 가까운 같은 글자 (Python) (0) | 2024.11.06 |