728x90
반응형
문제: https://www.acmicpc.net/problem/2839
풀이
요즘 코딩테스트 준비로 인해, 여러 문제를 풀고 있는데요.
예전에 풀어봤던 DP 문제를 다시 풀어보게 되었습니다.
그 때와는 또 다른 방식의 풀이를 생각해서
기록해보려고 작성하게 되었습니다.
1년 전 쯤에 풀었던 코드는 부끄러울 정도로 지저분합니다 ...
그때 작성한 코드를 보니, 지금은 조금 성장한 모습이라 다행이라고 생각이 됩니다.
제가 푼 방법을 방법을 말씀드려보자면 !
N을 5로 나눈 몫을, 큰 순서대로 구하고 (for문을 돌려서)
사용한 봉지의 개수가 가장 작은 것부터 나오도록 계산했습니다.
5kg의 봉지를 많이 사용할수록 3kg의 봉지는 덜 사용하기 때문에
5kg의 몫을 구할 수 있을 때 break를 걸었고,
break 없이 for문이 완벽하게 다 돌았다면
답을 구할 수 없기에 else문으로 -1을 출력했습니다.
N = int(input())
for five in range(int(N//5), -1, -1):
three = int((N-(5*five)) / 3)
if int(N-(5*five)) % 3 == 0:
print(five+three)
break
else:
print(-1)
728x90
'자료구조 및 알고리즘 > 백준' 카테고리의 다른 글
[python] 1699. 제곱수의 합 (1) | 2024.06.03 |
---|---|
[python] 17636. Four Squares (0) | 2024.06.03 |
[python] 10870. 피보나치 수 5 (0) | 2024.06.01 |
[python] 5618. 공약수 (0) | 2024.05.31 |
[python] 1913. 달팽이 (0) | 2024.05.29 |