코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
sugar = int(input())
bag = 0
while sugar>=0:
if sugar%5==0: #5의 배수이면 그냥 몫을 출력하면 됨
bag = bag+ sugar//5
print(bag)
break
sugar -= 3 #그게 아니면 3씩 빼면서 bag를 하나씩 늘려간다
bag +=1
if sugar<0: #결국 sugar가 0보다 작아지면 -1를 출력한다
#만약에 3으로 나누어 떨어진다면 0보다 작아질일은 없다
print(-1)
break
|
cs |
문제풀이
봉지 3킬로랑 5킬로가 있는데 더 적은 봉지를 들고 싶으면
최대한 5로 해결을 해야한다.
그래서 만약에 설탕이 5의 배수이면 5킬로 봉지로 다 해결한다.
그런데 5의 배수가 아니라면 3킬로 봉지에 하나 넣어보고
남은 설탕이 5의 배수인지 본다.
또 아니라면 또 3킬로 봉지에 하나를 더 넣고 남은 설탕이 5킬로인지 본다
계속 3을 빼다가 0보다 작아지면 3이나 5로 해결할 수 없다는 것이므로 -1를 출력한다.
728x90
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
[백준] 1436 영화감독 숌 파이썬 풀이 (브루트포스) (0) | 2021.06.20 |
---|---|
[백준] 1011 Fly me to the Alpha Centauri 파이썬 풀이 (기본 수학 1) (1) | 2021.06.19 |
[백준] 1316 그룹 단어 체커 파이썬 풀이 (문자열) (0) | 2021.06.19 |
[백준] 2941 크로아티아 알파벳 파이썬 풀이 (0) | 2021.06.16 |
[백준] 1157 단어공부 파이썬 풀이 (0) | 2021.06.16 |