https://www.acmicpc.net/problem/2309
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
해석 및 팁
백준 3040번이랑 유사한 문제입니다. 먼저 배열을 선언한 후 9개의 값을 입력받고 오름차순으로 정렬해줍니다. 그리고 나서 9개의 값중 7개의 값이 100이므로 9개의 값을 다 더해서 100을 빼주면 남는 값들의 합이 나옵니다. 그리고 반복문을 통해 그 값들을 찾아서 빼고 출력해주면 됩니다.
Java 코드
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] h = new int[9];
int sum = 0;
int a = 0;
int b = 0;
for(int i = 0; i < 9; i++) {
h[i] = sc.nextInt();
sum += h[i];
}
Arrays.sort(h); //오름차순 정렬
sum = sum - 100;
for(int i = 0; i < 9; i++) { //거짓값 2게 찾기
for(int j = i+1; j < 9; j++) {
if(h[i] + h[j] == sum) {
a = i;
b = j;
}
}
}
for(int i = 0; i < 9; i++) { // 찾아낸 2개의 값빼고 출력
if(i == a) continue;
if(i == b) continue;
System.out.println(h[i]);
}
}
}
'백준' 카테고리의 다른 글
백준 1934 최소공배수(Java) (0) | 2023.01.14 |
---|---|
백준 2748 피보나치 수 2(Java) (0) | 2023.01.14 |
백준 11653 소인수분해(Java) (0) | 2023.01.14 |
백준 1924 2007년(Java) (0) | 2023.01.14 |
백준 2609 최대공약수와 최소공배수(Java) (1) | 2023.01.14 |