Cooper's devlog

일곱 난쟁이:2309번 - JAVA 본문

Algorithm/Baekjoon

일곱 난쟁이:2309번 - JAVA

cooper_dev 2020. 7. 21. 00:47

1. 강의 링크

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

 

2309번: 일곱 난쟁이

아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.

www.acmicpc.net


2. 문제 설명


3. 문제 접근

1. 배열의 모든 합을 구한다.

2. 두 배열을 선정 후, 합과 두 배열이 차가 100인지 확인한다.

3. 일치하는 경우가 발생 시,   두 배열 값을 -1로 설정한다.

4. 배열 출력(만약, 0과 -1이 아닐 때)


4. 문제 풀이

 

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
package brute_force;
 
import java.util.Arrays;
import java.util.Scanner;
 
public class seven_dwarfs {
    static int[] dwarf = new int[10];
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int sum = 0;
        boolean is_finished = false;
 
        for (int i = 1; i <= 9; i++) {
            dwarf[i] = Integer.parseInt(sc.nextLine());
            sum += dwarf[i];
        }
        
        for (int i = 1; i <= 9; i++) {
            if(is_finished) break;
            for (int j = 1; j < i; j++) {
                if(sum - (dwarf[i] + dwarf[j]) == 100) {
                    dwarf[i] = dwarf[j] = -1;
                    is_finished = true
                    break;
                }
            }
        }
        
        Arrays.sort(dwarf);
        
        for (int idx = 1; idx <= 9; idx++) {
            if(dwarf[idx] != -1 && dwarf[idx] != 0)
            System.out.println(dwarf[idx]);
        }
        
        sc.close();
    }
}
 
 

 

<정답 확인>


 

'Algorithm > Baekjoon' 카테고리의 다른 글

합이 0인 네 정수:7453 - JAVA  (0) 2020.10.03
사탕 게임:3085번 - JAVA  (0) 2020.07.21
가장 큰 증가 부분 수열:11055번 - JAVA  (0) 2020.07.21
동물원: 1309번 - JAVA  (0) 2020.07.17
쉬운 계단 수 : 10844번 - JAVA  (0) 2020.07.17
Comments