반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 트리
- python
- 유사코드
- 태그
- Import
- 리스트
- 코딩테스트
- Combination
- 좋은 알고리즘
- import itertools
- 과일 장수
- 큐
- html
- 코딩 테스트
- 스택
- 알고리즘의 조건
- 자료구조
- 알고리즘의 조건 5가지
- java
- list
- 자바
- Tree
- 프로그래머스
- 유한소수 판별하기
- 파이썬
- 알고리즘 표현
- 알고리즘
- 들여쓰기로 표현한 트리
- LV.1
- itertools
Archives
- Today
- Total
인천의 자유인
[Python] 콜라 문제 - 프로그래머스(Lv.1) 본문
728x90
반응형
반응형
나의 문제 풀이
def solution(a,b,n):
total = 0
remain = 0
while n>0:
remain = remain + n%a
n = (n // a)*b
total += n
if n%a != 0:
n = n + remain
remain = 0
return total
먼저 총 받을 개수를 구하기 위한 total를 만들고 그리고 나눴을 때 나머지가 될 remain이라는 변수를 만들어 줍니다. 그것을 만든 후에는 n이 0이 될 때 까지 계속 루프를 돌립니다.
remain을 만들어 둔 이유는 10/2 같이 나누어 떨어질 경우에는 필요가 없지만 5/2같이 나누어 떨어지지 않은 경우도 많습니다. 남는 값을 버릴 수 없고 활용해야 하기 때문에 나누어 떨어지지 않을 경우에는 그동안 모아 두었던 것을 그 값에 더해서 나누어 떨어져서 구할 수 있도록 합니다. 그리고 다시 초기화를 해야 할 필요가 있기 때문에 remain을 0으로 만들어 주어야 한다는 점을 잊어선 안됩니다.
이것이 완료가 됬다면 이제는 줄 병이 없을 때 까지, 즉 n이 0이 될 때 까지 계속 더한 후 while문에서 그동안 쌓아온 total의 값을 return해 주면 문제는 해결됩니다.
728x90
반응형
'Python > Python코딩테스트' 카테고리의 다른 글
[Python] 카드 뭉치 - 프로그래머스(Lv.1) (0) | 2024.07.01 |
---|---|
[Python] 명예의 전당(1) - 프로그래머스(Lv.1) (0) | 2024.06.28 |
[Python] 푸드 파이트 대회 - 프로그래머스(Lv.1) (2) | 2024.06.22 |
[Python] [1차]비밀지도 - 프로그래머스(Lv.1) (0) | 2024.06.17 |
[Python] 문자열 내 마음대로 정렬하기 - 프로그래머스(Lv.1) (0) | 2024.06.14 |