1. 문제 링크
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
2. 문제 및 입출력예제
3. 문제 풀이
일단 N이 5의 배수와 3의 배수의 합으로 이루어져 있어야 한다.
그렇다고 무턱대고 5나 3으로 빼면 최소한의 개수가 나오지 않는다.
재귀를 쓰기에는 모든 경우를 다 확인하는 방법밖에 생각나지 않았다.
처음부터 N-5를 한다면 3의 배수일 경우가 제대로 나오지 않는다.
그래서 N-3이 우선이라는 생각을 했고 코드를 작성했다.
어떻게 풀어야 하는지 감이 안 잡혀서 꽤나 오래 생각하고 여러 방법을 시도했고 맞았다!
나의 코드 작성 흐름
- 1. N이 5의 배수이면 count+N/5하고 count 출력 후 break;
- 2. 아니라면 N-3하고 count+1
- 3. 1~2의 과정을 반복
- 4. 만약 2의 과정에서 N이 음수가 된다면 -1 출력하고 break;
4. 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int count = 0;
while(true) {
if(n%5==0) {
count += n/5;
System.out.println(count);
break;
}
else {
n = n-3;
count++;
}
if(n<0) {
System.out.println("-1");
break;
}
}
}
}
'ALGORITHM' 카테고리의 다른 글
백준 3052 나머지 (Java) (0) | 2023.01.17 |
---|---|
백준 2869 달팽이는 올라가고 싶다 (Java) (0) | 2023.01.16 |
백준 1181 단어 정렬 (Java) (0) | 2023.01.15 |
백준 10828 스택 (Java) (0) | 2023.01.14 |
백준 2309 일곱 난쟁이 (Java) (0) | 2023.01.13 |