ALGORITHM

백준 2839 설탕배달 (Java)

공부하는_다온 2023. 1. 12. 22:51

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;
			}
		}
	}
}