Skip to content

Commit fc377c8

Browse files
committed
[Silver IV] Title: 설탕 배달, Time: 92 ms, Memory: 108384 KB -BaekjoonHub
1 parent 0fa7938 commit fc377c8

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# [Silver IV] 설탕 배달 - 2839
2+
3+
[문제 링크](https://www.acmicpc.net/problem/2839)
4+
5+
### 성능 요약
6+
7+
메모리: 108384 KB, 시간: 92 ms
8+
9+
### 분류
10+
11+
다이나믹 프로그래밍, 그리디 알고리즘, 수학
12+
13+
### 제출 일자
14+
15+
2025년 2월 4일 15:09:54
16+
17+
### 문제 설명
18+
19+
<p>상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다.</p>
20+
21+
<p>상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다.</p>
22+
23+
<p>상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오.</p>
24+
25+
### 입력
26+
27+
<p>첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000)</p>
28+
29+
### 출력
30+
31+
<p>상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다.</p>
32+
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
n = int(input())
2+
3+
if n % 5 == 0: print(n//5)
4+
else:
5+
p = 0
6+
while n>0:
7+
n -= 3
8+
p += 1
9+
if n % 5 == 0:
10+
p += n // 5
11+
print(p)
12+
break
13+
elif n == 1 or n == 2:
14+
print(-1)
15+
break
16+
elif n == 0:
17+
print(p)
18+
break

0 commit comments

Comments
 (0)