공부 기록장 2023. 12. 30. 21:32

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

 

2839번: 설탕 배달

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

www.acmicpc.net


이 문제 또한 특정 패턴이 있다.

먼저 N은 3보다 크거나 같기 때문에 1,2 는 제외하고 보면 4와 7의 경우는 3과 5로 만들 수 없기 때문에 -1로 고정한다.

if(N==4||N==7)
{
	System.out.println(-1);
}

그리고 5로 나누어 떨어지는 수는 5로 나눈 값을 출력하고 있다. 따라서 다음 코드와 같다.

else if(N%5==0)
{
	System.out.println(N/5);
}

 

오른쪽 끝에 있는 수는 5로 나누었을 때의 나머지이다.

5로 나누었을 때 나머지가 1, 3이 나오는 수들은 동일한 형태의 수를 출력하면서 증가하고 있다.

5로 나누었을 때 나머지가 2, 4가 나오는 수들 또한 동일한 형태의 수를 출력하면서 증가하고 있다.

 

나머지가 1, 3 인 수들은 N/5 +1 을 한 값이 출력되고

나머지가 2, 4 인 수들은 N/5 +2 을 한 값이 출력된다.

 

따라서 코드는 다음과 같다.

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

 

 

 

 

 

코드

import java.util.Scanner;

public class Main{
	public static void main(String[] args) {
	       Scanner sc = new Scanner(System.in);
	       int N = sc.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);
	       }
	    	    
	  }
}