본문 바로가기
PS 문제 풀이/Baekjoon

[BOJ] 백준 3040 백설 공주와 일곱 난쟁이(Java)

by 까망 하르방 2021. 2. 13.
반응형

출처https://www.acmicpc.net/problem/3040

주어지는 9개의 숫자 중 7개를 선택했을 때의 합이 100이 되는 경우를 구하는 문제이다.

조합 개념을 이용할 수 있지만

9개의 숫자밖에 주어지지 않으므로, 삼중 for문 이용.


import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
         
        Scanner sc = new Scanner(System.in);
         
        // 9개의 모자의 숫자를 입력받는다.
        int[] arr = new int[9];
        for(int i=0; i<9; i++) {
            arr[i] = Integer.parseInt(sc.next());
        }
         
        // for문을 이용해 순차적으로 2개의 모자를 뺀 나머지 모자의 숫자의 합을 군한다.
        for(int i=0; i<9; i++) {
            // 겹치지 않도록 조절
            for(int j=i+1; j<9; j++) {
                 
                int sum = 0;
                for(int k=0; k<9; k++) {
                     
                    // 순차적으로 서로 다른 2개의 모자를 제외시킨다.
                    if(k == i || k == j) {
                        continue;
                    }
                    sum += arr[k];
                     
                }
                 
                // 합이 100일 때 해당되는 모자를 순차적으로 출력한다.
                if(sum == 100) {
                    for(int k=0; k<9; k++) {
                        if(k == i || k == j) {
                            continue;
                        }
                        System.out.println(arr[k]);
                    }
                    // 종료!
                    return;
                }
            }
        }
         
    }
}

 

반응형

댓글