자료구조 및 알고리즘/백준

[python] 2839. 설탕 배달

viamemine 2024. 6. 2. 17:54
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