코딩테스트

[BOJ_2309/JAVA] 일곱 난쟁이

Eun 2021. 12. 7. 13:42

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

 

2309번: 일곱 난쟁이

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

www.acmicpc.net

문제

풀이

이번 문제는 굉장히 빨리 풀었다.....!!! 기분조아

난쟁이키의 합계 - 난쟁이 두명의 키 = 100 일때 두명을 제외한 나머지가 난쟁이가 된다.

 

1. 난쟁이 키를 입력받는다.

2. for문을 돌면서 뺐을 때 값이 100인 난쟁이 두명을 찾아서 다른 배열에 넣는다.

3. Array.sort()를 써서 오름차순 정렬

4. 9명의 난쟁이에서 2명의 난쟁이를 제외한 나머지 7명 난쟁이의 키만 출력한다.

코드

import java.io.IOException;
import java.util.Arrays;
import java.util.Scanner;

public class BOJ2309 {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		
//		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		Scanner sc = new Scanner(System.in);
		
		int [] height=new int[9];
		int total=0;
		int [] falut =new int[2];
		boolean isTrue = false;

		for(int i=0;i<9;i++) {
			height[i]=sc.nextInt();	// 난쟁이 키 받기
		}
		
		for(int i=0;i<9;i++) {
			total+=height[i];		// 난쟁이 키 다 더하기
		}
		
		System.out.println("");
		
		for(int i=0;i<9;i++) {
			if(isTrue) break;
			else {
				for(int j=1;j<8;j++) {
					int sum=height[i]+height[j];
					if(total-sum==100) {			//total-키의 합=100이면 난쟁이
						falut[0]=height[i];
						falut[1]=height[j];			// 난쟁이가 아닌 애 넣기
						isTrue=true;
						break;
					}
					else {
						continue;
					}
				}
			}
		}
		
		Arrays.sort(height);
		
		for(int i=0;i<height.length;i++) {
			if(height[i]!=falut[0] && height[i]!=falut[1]) {
				System.out.println(height[i]);
			}
		}
	}

}

'코딩테스트' 카테고리의 다른 글

[BOJ_10845/JAVA] 큐  (0) 2021.12.11
[BOJ_1157/JAVA] 단어공부  (0) 2021.12.11
[BOJ_1919/JAVA] 애너그램 만들기  (0) 2021.12.07
[BOJ_1673/JAVA] 치킨 쿠폰  (0) 2021.12.06
[BOJ_1668/JAVA] 트로피 진열  (0) 2021.12.05