- 문제
https://www.acmicpc.net/problem/2839
- 코드
#include <stdio.h>
// 백준 2839번: 설탕 배달
int main(){
int n; // 설탕 킬로그램
scanf("%d", &n);
int count = 0; // 설탕 봉지 수
while(n != 0){
if((n >= 5) && ((n - 5 >= 3) || (n - 5 == 0)) && (n - 5 != 4) && (n - 5 != 7)){
n = n - 5;
count++;
}
else if(n >= 3){
n = n - 3;
count++;
}
else{
count = -1;
break;
}
}
printf("%d\n", count);
return 0;
}
- 문제풀이방법
n(설탕 킬로그램)에서 5 혹은 3을 하나씩 빼면서 답을 구해줄 것이다.
설탕에서 5 혹은 3을 빼면은 count(설탕 봉지 수)를 1씩 증가시키겠다.
- n이 5 이상이면서 n - 5는 4가 아니고(4 이면 다음 반복 때 3을 빼면 1 임) n - 5가 7 이 아니고(7 이면 다음 반복 때 5 또는 3을 빼면 2 또는 4 임) n - 5가 3보다 크거나(2 또는 1 이면 안됨) n 이 5 이면 n에서 5를 빼고 count를 1 증가시킨다.
- 위의 조건이 아니고 n이 3 이상이면 n에서 3을 빼고 countf를 1 증가시킨다.
- 1,2의 조건을 둘 다 만족하지 않은 경우의 설탕 마지막 무게는 1, 2 가 있을 것이다.
필자 또한 이 문제를 풀면서 고민을 좀 하였다.
고민하다가 '일단 코딩 해보자' 해서 예제 입출력을 하나씩 만족해 가며 코딩하여 문제를 해결할 수 있었다.
다들 화이팅합시다.
'백준' 카테고리의 다른 글
[C언어] 백준 2161번: 카드1 (0) | 2024.08.24 |
---|---|
[C언어] 2822번: 점수 계산 (0) | 2024.08.24 |
[C언어] 백준 2485번: 가로수 (0) | 2024.08.23 |
[C언어] 백준 10815번: 숫자 카드 (0) | 2024.08.22 |
[C언어] 백준 2003번: 수들의 합 2 (0) | 2024.08.22 |