본문 바로가기
코딩테스트 준비/백준

[백준] 2309번 - 일곱 난쟁이 [Java]

by mwzz6 2024. 12. 30.

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

 

[백준] 2309번 - 일곱 난쟁이 [Java]
[백준] 2309번 - 일곱 난쟁이 [Java]


1.  아이디어

 

2중 for문을 통한 브루트포스 알고리즘으로 가짜 난쟁이를 찾을 수 있다.


2. 문제풀이

 

모든 난쟁이 후보의 키의 합을 구한 후 2명씩 확인해보며 가짜 난쟁이인지 판단하는 방식으로 구현했다.


3. 코드

 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringBuilder sb = new StringBuilder();

        int[] arr = new int[9];
        int sum = 0;

        for (int i = 0; i < 9; i++) {
            arr[i] = Integer.parseInt(br.readLine());
            sum += arr[i];
        }

        out:
        for (int i = 0; i < 8; i++) {
            for (int j = i + 1; j < 9; j++) {
                if (sum - arr[i] - arr[j] == 100) {
                    arr[i] = 0;
                    arr[j] = 0;
                    break out;
                }
            }
        }

        Arrays.sort(arr);
        for (int i = 2; i < 9; i++) {
            sb.append(arr[i]).append("\n");
        }

        bw.write(sb.toString());
        bw.flush();
    }
}

4. 후기