import java.util.Arrays;
import java.util.Scanner;
public class ex2309 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[9];
int sum=0;
for (int i = 0; i < 9; i++) {
arr[i] = sc.nextInt();
sum+= arr[i];
}
Arrays.sort(arr);//정렬
//해당 인덱스에 0을 초기화해서 차별점을 준다.
for(int i=0; i<arr.length-1; i++){
for(int j=i+1; j<arr.length; j++){
if(sum-arr[i]-arr[j]==100){
arr[i]=0;
arr[j]=0;
}
}
}
//그다음 0인 인덱스를 빼고 출력한다.
for(int i:arr){
if(i!=0)
System.out.println(i);
}
}
}
출력은 올바르지만, 백준에선 틀렸다고 나왔다.
곰곰히 생각해보니 백준에선 여러가지 입력값을 넣는다고 생각하면 만약 0을 입력한다면, 이코드는 틀린게 맞다고 생각이 든다.
import java.util.Arrays;
import java.util.Scanner;
public class ex2309 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[9];
int sum=0;
int f1=0;
int f2=0;
for (int i = 0; i < 9; i++) {
arr[i] = sc.nextInt();
sum+= arr[i];
}
Arrays.sort(arr);
for(int i=0; i<arr.length-1; i++){
for(int j=i+1; j<arr.length; j++){
if(sum-arr[i]-arr[j]==100){
f1=i;
f2=j;
}
}
}
for (int i = 0; i < arr.length; i++) {
if(i==f1||i==f2){
continue;
}
System.out.println(arr[i]);
}
}
}
그래서 해당 인덱스 값을 저장해 for문으로 순회했을때 그 인덱스값이 나오면 continue를 하고 나머지를 출력해줬다.
느낀점
여러가지 입력값을 생각해야 다양한 테스트를 통과하는 코드를 짜야한다고 느꼈다.