[백준] 2839 설탕 배달 (Java)

한비·2023년 2월 8일
0

baekjoon

목록 보기
1/7

백준 2839 설탕 배달

문제


상근이는 설탕 가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕 공장에서 만드는 설탕은 봉지에 담겨져 있고, 봉지는 3킬로그램, 5킬로그램 봉지가 있다. 상근이가 최대한 적은 봉지를 들고 가려고 할 때, 봉지를 몇 개 가져가면 되는 지 그 수를 구하는 프로그램을 작성하시오.

입력


첫째 줄에 N이 주어진다. (3<= N <= 5000)

출력


상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다.

예제 입력 1


18

예제 출력 1


4

예제 입력 2


4

예제 출력 2


-1

예제 입력 3


6

예제 출력 3


2

예제 입력 4


9

예제 출력 4


3

예제 입력 5


11

예제 출력 5


3

풀이

봉지의 개수를 최소화 하려면 최대한 5킬로그램 봉지를 많이 사용해야 한다.

  • 5로 나눠지면 5로 나눈 몫을 봉지 개수(cnt)에 더해서 출력
  • 5로 나눠지지 않으면 5로 나눠 떨어질 때까지 3킬로그램 봉지를 써가면서(-3) 봉지 개수(cnt) 늘리기
  • 남은 설탕 양이 0보다 작아지면 5, 3 봉지로 딱 맞게 배달할 수 없다고 판단

코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		int cnt =0;
		while(true) {
			if(n%5==0) {
				cnt += n/5;
				System.out.println(cnt);
				break;
			}
			else {
				n -=3;
				cnt++;
			}
			if(n<0) {
				System.out.println(-1);
				break;
			}
		}
	}
}```
profile
아기 개발자 한비의 두비두밥

0개의 댓글

관련 채용 정보