https://www.acmicpc.net/problem/2309
문제
풀이
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] height = new int[9];
int sum = 0;
for(int i = 0; i < 9; i++){
height[i] = Integer.parseInt(br.readLine());
sum += height[i];
}
int idx1 = 0, idx2 = 0;
for(int i = 0; i < 8; i++){
for(int j = i+1; j < 9; j++){
int temp = sum - height[i] - height[j];
if(temp == 100){
idx1 = i;
idx2 = j;
}
}
}
int[] answer = new int[9];
for(int i = 0; i < 9; i++){
if(i != idx1 && i != idx2){
answer[i] = height[i];
}
}
Arrays.sort(answer);
for(int i = 2; i < 9; i++){
System.out.println(answer[i]);
}
}
}
9개의 값을 모두 더한 sum에서 두개의 값만 빼준 뒤에 100이 되면 출력하는 형식으로 진행했다.
배열을 정렬한 뒤에 앞의 2개를 빼는 아이디어까지는 괜찮았으나 뭔가 코드가 무거워보여서 다른 분의 풀이를 찾아보니 이중포문 안에서 찾는 즉시 i,j의 값을 0으로 만들고 정렬한 뒤에 출력했다. 이 방법이 훨씬 효율적이고 깔끔해보였다. 정답을 맞추는 것만이 아닌 효율적인 코드를 작성할 수 있게 노력해야될 것 같다.
'문제 풀이 > 백준' 카테고리의 다른 글
[백준]2581번. 소수(JAVA) (0) | 2024.04.13 |
---|---|
[백준]2693번. N번째 큰 수 (JAVA) (0) | 2024.04.12 |
[백준]10870번. 피보나치수 5(JAVA) (0) | 2024.04.11 |
[백준]2460번. 지능형 기차2(JAVA) (0) | 2024.04.11 |
[백준]10818번. 최소, 최대(JAVA) (0) | 2024.04.11 |