ABOUT ME

초급 개발자의 기록

Today
Yesterday
Total
  • [java] 백준 알고리즘 2839번 설탕 배달 풀이 소스
    알고리즘/백준 알고리즘 2018. 4. 3. 11:08



    사칙연산 종류 문제다.


    고민하다가 5를 나눠보고 그 나머지 값들로 답을 찾으면 되겠다 싶었다.


    n을 5로 나눴을 때,


    나머지가 1일 경우에는 몫에서 -1을 해주면 5+1을 만들어줄 수 있다. 즉, 6이 되기 때문에 3kg 봉지 2개에 담으면 된다.


    나머지가 2일 경우에는 몫에서 -2를 해주면 10+2가 된다. 즉, 12가 되기 때문에 3kg 봉지 4개에 담을 수 있다. 

    (단, n이 7일 경우에는 성립 안됨)


    나머지가 3일 경우에는 그냥 3kg 봉지 1개 더 담아주면 된다.


    나머지가 4일 경우에는 몫에서 -1을 해주면 5+4가 된다. 즉, 9가 되기 때문에 3kg 봉지 3개에 담을 수 있다.

    (단, n이 4일 경우에는 성립 안됨)


    나머지가 0일 경우에는 5kg 봉지에 다 담아주면 된다.


    그럼 4와 7 이외에는 3과 5kg 봉지로 설탕량이 얼마나 되든 다 담을 수 있기 때문에


    4와 7만 -1 로 출력된다.




    이것을 코딩하면 다음과 같다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    public class Baekjoon2839 {
     
        public static void main(String[] args) {
               Scanner sc = new Scanner(System.in);
                
                int n = sc.nextInt(); // 배달하는 설탕의 양(kg)
                
                int remainder = n%5// 나머지
                int quotient = n/5// 몫
                int output = 0// 결과: 배달하는 봉지의 최소 개수
                
                if(remainder == 1){ // 나머지가 1일 경우
                    quotient -= 1;
                    output = quotient +2;
                    
                }else if(remainder == 2 && n != 7){ // 나머지가 2일 경우
                    quotient -= 2;
                    output = quotient + 4;
                    
                }else if(remainder == 3){ // 나머지가 3일 경우
                    output = quotient +1;
                    
                }else if(remainder == 4 && n != 4){ // 나머지가 4일 경우
                    quotient -= 1;
                    output = quotient + 3;
                    
                }else if(remainder ==0){ // 나머지가 0일 경우
                    output = quotient;
                }
                
                if(n == 4 || n == 7){
                    output = -1;
                }
                
                System.out.println(output);
     
        }
     
    }
     
    cs




Designed by Tistory.