본문 바로가기

Study/BaekJoon

[백준 자바JAVA] 2839번 - 설탕 배달

728x90

https://www.acmicpc.net/problem/2839

 

2839번: 설탕 배달

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

www.acmicpc.net


● 문제

처음에는 짜기 쉬워보이지만 꽤나 만만치 않은 문제이다.

그러나 수학적개념만 잘 생각한다면 쉽게 구현할 수 있다.


● 코드

import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		
		int n = s.nextInt();
		
		
		if(n == 4 || n==7)
			System.out.println(-1);
		
		else if(n % 5 == 0)
			System.out.println(n / 5);
		
		else if(n % 5 == 1 || n % 5 == 3)
			System.out.println((n / 5) + 1);
		
		else if(n % 5 == 2 || n % 5 == 4)
			System.out.println((n / 5) + 2);
			
			
	}

}

 


● 참고사항

위의 그림은 구현할 때 썼던 내용이다. 빨간 네모의 경우에는 3의배수이거나 5의배수이고 각 배수는 각 배수일 때 가장 작은 값을 가진다.

 

그리고 세번째 줄에 적혀있는 숫자는 5로 나누었을때의 나머지를 나타낸 것이다. 이를 보면 나머지는 1, 2, 3, 4중에서 나온다는것을 알 수 있는데 각 갯수를 확인해보면 나머지가 1, 3이 나왔을 때에는 5로 나눈 몫의 +1개만큼의 설탕이 추가되고 2, 4가 나왔을 경우에는 5로 나눈 몫의 +2만큼의 설탕이 추가된다는 것을 알 수 있다.

 

이러한 규칙만 파악한다면 쉽게 구현할 수 있다.

728x90