반응형
https://www.acmicpc.net/problem/2839
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
문제 접근법
- n값이 5로 나누었을 때 나머지가 없다면 n 값을 5만큼 빼고 봉지의 갯수를 1개 늘립니다.
- n값이 5로 나누었을 때 나머지가 존재한다면 n 값은 3만큼 빼고 봉지의 갯수를 1개 늘립니다.
한번에 연산하지 않고 왜 나누어 연산을 하는지에 대한 의문이 들 수 있습니다.
ex) 한번에 n / 5 개를 추가하면 안되는 이유(반례) : n이 16일 경우
- 5짜리 봉지 3개를 추가하면 1kg이 남습니다.
- 하지만 위의 방식대로 진행하면 5, 5, 3, 3 으로 4개의 봉지를 구할 수 있습니다.
아래는 코드입니다.
더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#include <cstdio>
using namespace std;
int main()
{
int n, answer = 0;
scanf("%d", &n);
while (1)
{
if (n % 5 == 0)
{
n -= 5;
answer++;
}
else
{
n -= 3;
answer++;
}
if (n == 0)
{
printf("%d", answer);
break;
}
else if (n < 0)
{
printf("-1");
break;
}
}
return 0;
}
|
cs |
반응형
'백준 문제풀이 > BRONZE' 카테고리의 다른 글
[백준 / BOJ / BRONZE 2] 2309 번 : 일곱 난쟁이 (0) | 2020.03.03 |
---|