본문 바로가기

ALGORITHM

백준 2839 설탕배달 (Java)

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