https://www.acmicpc.net/problem/2839
문제 풀이
- 정확하게 나누어 떨어질 때, 3킬로그램의 갯수가 적을수록 더 적은 개수의 봉지를 가져갈 수 있다.
- 최대의 3킬로그램으로 가져갈 때를 가정하여, max_pcs를 설정한다. (0개 일때도 고려하므로, +1)
- 0부터 max_pcs까지, 3킬로그램 봉지의 갯수를 pcs로 설정하여 탐색한다.
- N킬로그램에서 pcs만큼의 3킬로그램 봉지를 가져간 나머지에 대해, 5킬로그램으로 나누어 떨어지면, 그 갯수와 pcs를 합한 값을 출력한다.
- has_answer의 플래그를 통해, 정확하게 N킬로그램을 만들 수 없는 상황에 대비한다.
문제 코드
N = int(input())
has_answer = False
max_pcs = (N // 3) + 1
for pcs in range(max_pcs):
remainder = N - (3 * pcs)
if remainder % 5 == 0:
print(pcs + (remainder // 5))
has_answer = True
break
if has_answer is not True:
print(-1)
'Koala - 15기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python3] 9996번: 한국이 그리울 땐 서버에 접속하지 (0) | 2024.07.08 |
---|---|
[백준/Python] 2010번: 플러그 (0) | 2024.07.08 |
[백준/Python] 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2024.07.07 |
[BOJ/Python3] 2896번 달팽이는 올라가고 싶다 (0) | 2024.07.07 |
[백준/Python] 4458번: 첫 글자를 대문자로 (0) | 2024.07.07 |