2309번 일곱 난쟁이

2022. 4. 3. 19:19PS/BOJ

[문제 접근법]

- 9명의 난쟁이중 키의 합이 100인 7명의 난쟁이를 찾는 문제이다.

  9명의 난쟁이 키의 합 - 2명의 난쟁이 키의 합 = 100인 경우를 찾는 방식으로 접근하였고 반복을 통한 완전탐색을 하였다.

  

그림 1 - 문제 설명


[구현 1]

- List에 난쟁이들의 키를 담아 완전탐색 하였음

package com.codingtest.barkingdog.x02;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class 일곱난쟁이 {

    public static void main(String[] args) {
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            StringTokenizer st;
            List<Integer> heights = new ArrayList<>();
            int sum = 0;

            for (int i = 0; i < 9; i++) {
                int height = Integer.parseInt(br.readLine());
                heights.add(height);
                sum += height;
            }

            Collections.sort(heights);

            //9명의 난쟁이들 키의 합 - 2명의 난쟁이 키의합 = 100인 경우 찾기
            for (int i = 0; i < heights.size(); i++) {
                int one = heights.get(i);
                for (int j = i + 1; j < heights.size(); j++) {
                    int two = heights.get(j);

                    if (sum - one - two == 100) {
                        for (Integer height : heights) {
                            if (!height.equals(one) && !height.equals(two))
                                System.out.println(height);
                        }

                        return;
                    }

                }
            }

        } catch (Exception e) {

        }
    }
}
반응형

'PS > BOJ' 카테고리의 다른 글

1475번 방 번호  (0) 2022.08.27