본문 바로가기

Dev. Etc/Algorithm

[JAVA] 백준 알고리즘 2309번 문제풀이 (일곱 난쟁이)

 

 

 

 

 

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

 

2309번: 일곱 난쟁이

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

www.acmicpc.net

 

● 일곱 난쟁이 (2309번) - 브루트포스

 

 

 

 

 

 

import java.util.*;
public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int n = 9;
        int[] a = new int[n];
        int sum = 0;
        for (int i=0; i<n; i++) {
            a[i] = sc.nextInt();
            sum += a[i];
        }
        Arrays.sort(a);
        for (int i=0; i<n; i++) {
            for (int j=i+1; j<n; j++) {
                if (sum - a[i] - a[j] == 100) {
                    for (int k=0; k<n; k++) {
                        if (i == k || j == k){ 
                            continue;
                         }
                        System.out.println(a[k]);
                    }
                    System.exit(0);
                }
            }
        }
    }
}

* 소스 풀이

아홉명의 난쟁이를 입력받습니다. for문을 통해 난쟁이의 키를 a배열에 각 인덱스에 넣어줍니다.

그리고 sum변수에 9명의 난쟁이의 키의 합을 계산해줍니다.

모두 정렬을 해주고, 9명의 키의합 - [0] +[1]의계산값이 100이면 i와 j를 제외한 나머지 7명의 난쟁이를

출력해줍니다.

 

 

< 백준알고리즘 강의를 보고 참고하였습니다! >