728x90
<문제>
https://www.acmicpc.net/problem/2309
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
<풀이>
위 문제 같은 경우 9명 중에 7명을 뽑아야 하는 생각으로 접근해서 문제풀 수 있다. 그럴 경우 DFS를 이용해서 조합을 구현해서 문제를 풀 수 있으나, 더 쉬운 방식으로 9명 중에 2명을 빼는 방식으로도 문제를 풀 수 있다.
반복문 2개를 이용해서 2명을 선택해서 전체 합에서 2명의 합을 뺐을때 100일 경우 출력을 하면 된다.
<코드>
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] inputArr = new int[9];
int sum = 0;
for(int i = 0; i < 9; i++) { // 입력 및 입력한 값 합산
inputArr[i] = Integer.parseInt(br.readLine());
sum += inputArr[i];
}
for(int i = 0; i < 8; i++) { // 9명중에서 2명 뺀 사람의 합이 100일경우 찾기
for(int j = i+1; j < 9; j++) {
if (sum - inputArr[i] - inputArr[j] == 100) {
inputArr[i] = 0;
inputArr[j] = 0;
Arrays.sort(inputArr);
for(int k = 2; k < 9; k++) {
System.out.println(inputArr[k]);
}
return;
}
}
}
}
}
728x90
'Algorithm > 백준 자바' 카테고리의 다른 글
백준 11655 자바 (1) | 2024.01.03 |
---|---|
백준 1159 자바 (0) | 2024.01.03 |
백준 10988 자바 (1) | 2024.01.03 |
백준2979 자바 (2) | 2024.01.03 |
백준 10808 자바 (1) | 2024.01.03 |