2309번
문제
- 일곱 난쟁이의 키의 합은 100, 아홉 난쟁이의 키가 주어질때 진짜 일곱 난쟁이의 키를 오름차순으로 출력하는 문제
문제 해결 순서
- 아홉 난쟁이의 키의 합을 sum에 저장
- sum에서 100을 뺀 수를 sub에 저장
- 2중 for문을 돌며
arr[i] + arr[j] == sub이면 가짜 난쟁이라는 뜻 - break loop를 이용해 반복문을 탈출, 값을 찾자마자 탈출하지 않으면
arr[i] + arr[j] == sub이 가능한 다른 값을 찾아 여러개의 배열이 0으로 바뀔 수 있음 - 배열을 정렬해서 출력
import java.util.Scanner;
import java.util.Arrays;
class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] arr = new int[9];
int sum = 0;
for(int i=0; i<9; i++){
arr[i] = scan.nextInt();
sum += arr[i];
}
int sub = sum - 100;
loop:
for(int i=0; i<9; i++){
for(int j=i+1; j<9; j++){
if(arr[i] + arr[j] == sub){
arr[i] = 0;
arr[j] = 0;
break loop;
}
}
}
Arrays.sort(arr);
for(int i=0; i<9; i++){
if(arr[i] != 0){
System.out.print(arr[i] + "\n");
}
}
}
}