반응형
https://www.acmicpc.net/problem/2309
- 문제
- 문제 풀이
백준 2309번 일곱 난쟁이는 브루트 포스 기법을 이용해서 푸는 스페셜저지 문제이다. 스페셜저지 문제는 문제의 정답이 여러 가지일 때 유저가 출력한 답이 맞는지 안 맞는지 확인하는 문제이다. 이 문제에서는 9명의 키가 주어진다. 그리고 9명의 키 중에 7개를 골라서 합이 100이 되는 7명을 찾고 그 7명의 키를 오름차순으로 출력해주면 된다.
먼저 9명 키의 합 sum을 구해준다. 그리고 2명의 키를 sum에서 빼주고 그 뺀 키가 100이 되면 나머지 7명의 키를 오름차순으로 정렬에서 출력해주면 된다.
for (int i = 0; i < 8; i++) {
for (int j = i+1; j < 9; j++) {
if (sum - arr[i] - arr[j] == 100) {
arr[i] = 0;
arr[j] = 0;
Arrays.sort(arr);
for (int k = 2; k < 9; k++) {
System.out.println(arr[k]);
}
return;
}
}
}
- 코드
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[] arr = new int[9];
int sum = 0;
for (int i = 0; i < 9; i++) {
arr[i] = Integer.parseInt(br.readLine());
sum += arr[i];
}
for (int i = 0; i < 8; i++) {
for (int j = i+1; j < 9; j++) {
if (sum - arr[i] - arr[j] == 100) {
arr[i] = 0;
arr[j] = 0;
Arrays.sort(arr);
for (int k = 2; k < 9; k++) {
System.out.println(arr[k]);
}
return;
}
}
}
}
}
- 후기
브론즈 2 난이도의 비해서는 조금 어려운 브루트 포스 문제였다.
반응형
'백준' 카테고리의 다른 글
[백준] 9625번 : BABBA – JAVA [자바] (0) | 2022.03.27 |
---|---|
[백준] 11660번 : 구간 합 구하기 5 – JAVA [자바] (2) | 2022.03.26 |
[백준] 11718번 : 그대로 출력하기 – JAVA [자바] (0) | 2022.03.24 |
[백준] 1475번 : 방 번호 – JAVA [자바] (0) | 2022.03.24 |
[백준] 15828번 : Router – JAVA [자바] (0) | 2022.03.23 |
댓글