ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준] 일곱 난쟁이 2309번 - 자바 Java + 접근 방식
    문제/백준 2023. 11. 29. 14:28

    완전 탐색(Brute-force Search) 문제입니다.

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

     

    가짜 난쟁이 2명을 제외한 키 합이 100이 되는 일곱 난쟁이의 키를 출력하는 문제입니다.

     

    접근 방식 

     

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.Arrays;
    
    class Main {
        public static void main(String[] args) throws Exception {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            //난쟁이 9명 배열 생성
            int[] dwarfs = new int[9];
            //난쟁이들 키 총합
            int totalHeight = 0;
           
            for(int i = 0; i < 9; i++) {
                int height = Integer.parseInt(br.readLine()); //각 난쟁이 키
                dwarfs[i] = height; //각 난쟁이 키를 배열에 저장
                totalHeight += dwarfs[i]; //전체 키를 합산한 값          
            }
            //오름차순으로 난쟁이들 키 정렬     
            Arrays.sort(dwarfs);
            
            //가짜 난쟁이 두명
            int spyA = 0, spyB = 0;
            
            //두개의 값을 체크해야하기 때문에 맨 마지막 값은 안쪽 for문이 처리한다.
            for(int i = 0; i < dwarfs.length- 1; i++) { //dwarfs.lengt-1 == 8
                for(int j = i+1; j < dwarfs.length; j++) { //dwarfs.lengt == 9
                    if(totalHeight - dwarfs[i] - dwarfs[j] == 100) {
                        spyA = i;
                        spyB = j;
                        break;
                    }
                }
            }
            
            //가짜 난쟁이를 제외한 난쟁이(진)들 키 출력
            for(int i = 0; i < dwarfs.length; i++) {
                //가짜 난쟁이 키 제외 출력
                if(i != spyA && i != spyB) {
                    System.out.println(dwarfs[i]);
                }
            }
        }
    }

    '문제 > 백준' 카테고리의 다른 글

    [백준] 분해합 2231번 - 자바 Java + 접근 방식  (0) 2023.11.29
Designed by Tistory.