코딩테스트

[백준] 2309번 : 일곱 난쟁이 자바(JAVA) 풀이

hye-ne 2024. 9. 9. 21:32

문제 탐색하기

- 먼저 키의 합이 100이 되는 일곱 난쟁이 찾기

코드 설계하기

1. 문제의 Input을 받는다. (BufferedReader 사용)

2. 전체 난쟁이들의 키의 합 구하기

3. 차례대로 2명씩 제외해가며 키의 합이 100이 되는 구간 구하기

4. 난쟁이 키 배열에서 2명 제외 후 출력하기

풀이 코드

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

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //bufferedReader로 입력받기
		int sum = 0; // 난쟁이들의 키의 합
		int num = 9 ; // 난쟁이 수
		int[] a = new int[num]; // 난쟁이들 키 배열
		
		// 1. 전체 난쟁이들 키의 합 구하기
		for(int i=0; i<num; i++) {
			a[i] = Integer.parseInt(br.readLine()); // 키 한 줄 씩 받아오기
			sum += a[i];
		}
		
		// 2. 전체 난쟁이 키 합에서 2명을 빼서 100 만들기
		for(int n=0;n<num-1;n++) {
			for(int m=1;m<num;m++) {
				if(sum-a[n]-a[m] == 100) {
					a[n] = 0;
					a[m] = 0;
					
					// 오름차순 정렬
					Arrays.sort(a);
					
					// 일곱 난쟁이만 출력
					for(int x=2;x<num;x++) {
						System.out.println(a[x]);
					}
					return;
				}
			}
		}
		
	}
}