본문 바로가기

알고리즘 문제풀이/백준

[BOJ][JAVA] 2839 - 설탕 배달

문제 출처  : https://www.acmicpc.net/problem/2839

 

2839번: 설탕 배달

상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그

www.acmicpc.net

 

 

 

문제

 

 

 

설명

코드 자체는 굉장히 간단한 편인데, 아이디어를 얻기가 그만큼 쉽지는 않았던 문제였습니다.

전형적인 그리디 유형의 문제로, 5kg으로 최대한 많이 들고 가도록 하는게 포인트입니다.

5로 나눠지면 5kg로 다 들고갈 수 있다는 뜻이니 그 전에 구한 3kg의 갯수와, 남은 설탕을 5로 나눈 몫을 더해서 답을 내고 그렇지 않다면 3kg의 갯수를 하나씩 늘려줍니다.

계속 3kg로만 담아지다 남은 나머지가 3이나 5로 나눠 떨어지지도 않는다면, 5kg와 3kg로 Nkg를 만들 수 없다는 의미가 되므로 -1을 출력하고 종료합니다.

 

 

 

코드

import java.util.Scanner;

//그리디 -> 5kg를 우선적으로 최대한 많이 담기!
public class BOJ2839_SugarDeliver4 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int bag3 = 0;
		
		while(true) {
			if(n%5==0) {
				System.out.println(n/5+bag3);
				break;
			} else {
				bag3++;
				n-=3;
			}
			
			if(n<0) {
				System.out.println(-1);
				break;
			}
		}
	}
}

'알고리즘 문제풀이 > 백준' 카테고리의 다른 글

[BOJ][JAVA] 17135 - 캐슬 디펜스  (0) 2021.09.07
[BOJ][JAVA] 1074 - Z  (0) 2021.08.29
[BOJ][JAVA] 15686 - 치킨 배달  (0) 2021.08.25
[BOJ][JAVA] 3040 - 백설 공주와 일곱 난쟁이  (0) 2021.08.24
[BOJ][JAVA]2493 - 탑  (0) 2021.08.20