본문 바로가기

IT/알고리즘

백준 8단계(2839)

반응형
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
41
42
43
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        //n이 5로 나눴을때 0이면 n/5출력하면되는데
        //n이 5로 다 나눠지지 않고, 19인경우 5와 3의 조합을 찾아야한다
        if(n % 5 == 0) {
            System.out.println(n/5);
            return;
        } else {
            //quotient, 19/5는 3이며, 3부터 1까지 n이랑 빼서 3으로 나눠지는지 확인을 한다
            //이렇게 해야 최고의 조합을 찾을 수 있다
            int quotient = n/5;
            //3부터 ~ 1까지 가는 포문
            for(int i = quotient; i > 0; i--) {
                //temp에 저장을 해둔다
                int temp = n - i * 5;
                //만약 temp가 3으로 나눠지면
                if(temp % 3 == 0) {
                    //i와 temp/3의 값과 더하면 bag이 몇개가 필요한지 알 수 있다
                    System.out.println(i + temp/3);
                    return;
                }
            }
        }
        
        //만약 5와 3의 조합을 못찾았다는 뜻은 3으로 나눠질 수 있던지 아니면 숫자 
        //자체가 bag안에 담을 수 없는 숫자인 것이다. 
        //3으로 나눠진지 확인을 한다
        if(n % 3 == 0) {
            System.out.println(n/3);
            return;
        } else {
            //만약 다 안되면 -1로 출력을 한다 
            System.out.println(-1);
            return;
        }
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 
반응형

'IT > 알고리즘' 카테고리의 다른 글

백준 8단계(1193)  (0) 2019.12.14
백준 8단계(2292)  (0) 2019.12.14
백준 8단계(1712)  (0) 2019.12.10
백준 7단계(1316)  (0) 2019.12.10
백준 7단계(2941)  (0) 2019.12.10