본문 바로가기
코딩/백준-자바

[자바] 백준 2309번: 일곱 난쟁이

by 철없는민물장어 2023. 1. 11.
728x90
반응형

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

 

2309번: 일곱 난쟁이

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

www.acmicpc.net

arr배열에 9난쟁이의 키를 입력받고, 모든 값을 더해서 총합을 계산해 둔다

이중for문을 이용해서

두 난쟁이를 선택,

총합에서 두 난쟁이 키만큼 뺀 값이 100인지 확인한다.

해당 두 난쟁이만 제외하고 오름차순으로 출력한다.

(두 난쟁이에 해당하는 키를 -1로 만들고 정렬한 후 2번인덱스부터 출력하면 된다)

 

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

public class P2309 {

	public static void main(String[] args) throws NumberFormatException, IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int[] arr = new int[9];
		int count = 0;
		for (int i = 0; i < 9; i++) {
			arr[i] = Integer.parseInt(br.readLine());
			count += arr[i];
		}

		for (int i = 0; i < 8; i++) {
			for (int j = i + 1; j < 9; j++) {
				if (count - (arr[i] + arr[j]) == 100) {
					arr[i] = arr[j] = -1;
					break;
				}
			}
			if (arr[i] == -1)
				break;
		}

		Arrays.sort(arr);
		for (int i = 0; i < 9; i++) {
			System.out.println(arr[i]);
		}
	}

}

 

728x90
반응형

댓글