Coding Test

백준 2839번 : 설탕 배달

연_우리 2021. 10. 23. 23:43
반응형


5의 배수인 경우, 5킬로 봉지로 구성

3의 배수인 경우, 3킬로 봉지로 구성하고

5와 3의 배수가 아닌경우엔,

큰수인 5킬로 봉지, 3킬로 봉지 순으로 챙기고

줄여가다가 남은킬로수가 3보다 작게되면 -1을 반환한다.

 

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.Scanner;

class Sugar {
    int N;
    int count=0;

    void scan_input(String inputed){
        InputStream in = new ByteArrayInputStream(inputed.getBytes());
        System.setIn(in);
    }

    void scan(){
        Scanner scan = new Scanner(System.in);
        N = scan.nextInt();
        scan.close();
    }

    void process(){
        while(N>0){
            if(N % 5 == 0){
                N = N - 5;
                count++;
            }else if(N % 3 == 0) {
                N = N - 3;
                count++;
            }else{
                if(N>=5){
                    N = N-5;
                    count++;
                }else if(N>=3){
                    N = N-3;
                    count++;
                }else{
                    N = 0;
                    count = -1;
                }
            }
        }
        System.out.println(count);
    }
}

public class Main {
    public static void main(String[] args) {
        Sugar s = new Sugar();
        s.scan();
        s.process();
    }
}
import org.junit.jupiter.api.Test;

class MainTest {
    @Test
    void Test1(){
        Sugar s = new Sugar();
        s.scan_input("18");
        s.scan();
        s.process();
    }

    @Test
    void Test2(){
        Sugar s = new Sugar();
        s.scan_input("4");
        s.scan();
        s.process();
    }

    @Test
    void Test3(){
        Sugar s = new Sugar();
        s.scan_input("6");
        s.scan();
        s.process();
    }

    @Test
    void Test4(){
        Sugar s = new Sugar();
        s.scan_input("9");
        s.scan();
        s.process();
    }

    @Test
    void Test5(){
        Sugar s = new Sugar();
        s.scan_input("11");
        s.scan();
        s.process();
    }

    @Test
    void Test6(){
        Sugar s = new Sugar();
        s.scan_input("12");
        s.scan();
        s.process();
    }


}

 

반응형

'Coding Test' 카테고리의 다른 글

백준 1026번 : 보물  (0) 2021.10.27
백준 1946번 : 신입사원  (0) 2021.10.26
백준 2217번 : 로프 (시간초과 해결과정)  (0) 2021.10.25
백준 19941번 : 햄버거 분배  (0) 2021.10.21
백준 9009번 : 피보나치  (0) 2021.10.20
  • 네이버 블러그 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 구글 플러스 공유하기
  • 카카오톡 공유하기