보안 전공생의 공부

백준 2839번(미완) 본문

Language/JAVA

백준 2839번(미완)

수잉 2021. 1. 18. 03:18

입력 -> 출력

18         4

4          -1

6           2

9           3

11         3

이 나와야 한다고 한다.

 

조건문반복문을 이용해보려고 한다!

 

1) 무게<5 인 경우 : 무게가 3일때 봉지 개수 =1 

                          이외 - 정확히 N킬로그램 만들 수 X = -1

2) 무게>5 인 경우 

   (1) 무게가 5로 정확히 나눠 떨어지는 경우

       봉지 개수 = 무게를 5로 나눌 때 몫

 

   (2) 무게가 3으로 정확히 나눠 떨어지는 경우

       봉지 개수 = 무게를 3으로 나눌 때 몫

 

   (3) 이외

        1st. 무게에서 5를 뺀다(봉지개수를 최소화 한다고 하였으므로) -> 봉지개수 +1

        2nd.  3으로 나눴을 때 나눠 떨어지면 -> 봉지개수 + {(무게-5)/3}

              이것도 예외의 경우가 존재하지만, 일단 문제에서 주어지는 입력값들은 값이 작아서 예외가 발생하지 않음 !

               예외 처리하려 생각하니 머리가 아픔..

        3rd. 3으로 나눴을 때 나눠 떨어지지 X => 다시 무게에서 5를 빼며 반복 -> 봉지개수 +1

 

 

import java.util.Scanner;

class Main {
   public static void main(String[] args) {
         
	     int weight;
	     int cnt=0;
	    
	     for(int i=0;i<4;i++) {
	    	 Scanner sc=new Scanner(System.in);
	    	 System.out.println("무게입력");
	    	 weight=sc.nextInt();
	    	 
	    	 if(weight<5) {
	    		 if(weight%3==0)
        		 System.out.println(1);
        	 else System.out.println(-1);
	    	 }
	    	 else {
	    		 if(weight%5==0)
	    			 cnt+=(weight/5);
	    		 else if(weight%3==0)
	    			 cnt+=(weight/3);
	    		 else {
	    			 while (1){
	    				 weight-=5;
	    				 cnt++;
	    				 if(weight%3==0) {
	    					 cnt+=(weight/3);
	    					 break;
	    				 }
	    			 }
	    		 }
	    	 }
         
         System.out.println(cnt);
         sc.close();
	     }
   	}
   }

 

'Language > JAVA' 카테고리의 다른 글

객체지향프로그래밍에 대해 /클래스 (1)  (0) 2021.01.23
백준 2739번  (0) 2021.01.18
백준 10430 번  (0) 2021.01.18
참조 타입 | 배열  (0) 2021.01.17
변수와 자료형 | 조건문&반복문 | 연산자  (0) 2021.01.17
Comments