728x90
반응형
실버Ⅳ
https://www.acmicpc.net/problem/2839
풀이 방법
먼저 5kg 봉지를 최대한 많이 선택한 후 나머지 무게를 3kg 봉지로 채우는 것이 최적해를 찾는 방법이다.
1. 먼저 5kg 봉지의 최대개수와 5kg으로 나누었을때 남은 나머지 무게를 구한다.
2. 3kg 봉지로 나머지 무게를 나눈 나머지가 0이 될때까지 5kg 봉지를 한개씩 빼본다.
3. 5kg 봉지가 0개일때 나머지 무게가 3kg 봉지로 나누어 떨어지지 않는다면 -1을 출력한다.
내 코드
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
|
#pragma warning(disable:4996)
#include <stdio.h>
int main() {
int n, cnt, temp;
scanf("%d", &n);
cnt = n / 5;
temp = n % 5;
while (cnt >= 0) {
if (temp % 3 == 0) {
cnt = cnt + temp / 3;
printf("%d\n", cnt);
return 0;
}
cnt--;
temp += 5;
}
printf("-1\n");
return 0;
}
|
cs |
느낀점
이 문제의 경우 5kg 봉지를 먼저 최대한 많이 사용한 후, 5kg 봉지를 하나씩 줄여가며 남은 무게가 3kg의 배수인지를 확인하는 것이 핵심이었다.
728x90
반응형
'백준 알고리즘 단계별로 풀어보기 > 기본수학1' 카테고리의 다른 글
백준 알고리즘 10757번 큰 수 A+B (C언어) (0) | 2023.02.26 |
---|---|
[백준 알고리즘 2775번 문제] 부녀회장이 될테야 (C언어) #브론즈Ⅰ (0) | 2023.02.15 |
[백준 알고리즘 10250번 문제] ACM 호텔 (C언어) #브론즈Ⅲ (0) | 2023.02.07 |
[백준 알고리즘 2869번 문제] 달팽이는 올라가고 싶다 (C언어) #브론즈Ⅰ (0) | 2023.01.24 |
[백준 알고리즘 1193번 문제] 분수찾기 (C언어) #브론즈Ⅰ (0) | 2023.01.24 |