반응형
Notice
Recent Posts
Recent Comments
Link
지구정복
[브루트포스] 백준 - 일곱 난쟁이 본문
728x90
반응형
https://www.acmicpc.net/problem/2309
-문제해설
처음에는 처음부터 일일히 다 더해보려고 했다. 예를들면
arr배열에 아홉 난쟁이의 키가 있다고 하면 아래 숫자는 arr의 인덱스를 나타낸다.
1 2 3 4 5 6 7
1 2 3 4 5 6 8
1 2 3 4 5 6 9
1 2 3 4 6 7 8
1 2 3 4 6 7 9
1 2 3 4 6 8 9
1 2 3 5 6 7 8
1 2 3 5 6 7 9
.....
하지만 이를 구현하는게 굉장히 까다로웠다. 결국 질문검색에서 힌트를 보고 풀 수 있었다.
처음에 난쟁이 키를 입력받을 때 전체 값을 sum에 더해서 아홉난쟁이 키의 합을 구한다.
그리고 출력조건에 오름차순으로 출력해야하니깐 미리 arr배열을 오름차순으로 정렬하고
이중 포문을 돌면서
sum - ( 첫번째 인덱스 + 두번째 인덱스 ) == 100 인 경우를 찾는다.
위 조건을 만족하는 첫 번째와 두 번째 인덱스를 찾은 경우 변수 a와 b에 해당 인덱스값을 저장한다.
그리고 arr배열을 포문으로 순회하면서 인덱스값이 a와 b가 아닌 값들만 출력한다.
-자바
package bruteforce;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class BJ2309 {
public static void main(String[] args) throws NumberFormatException, 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];
}
Arrays.sort( arr );
int a = 0, b = 0;
l:for( int i=0; i<arr.length; i++ ) {
for( int j=i+1; j<arr.length; j++ ) {
if( sum - (arr[i]+arr[j]) == 100 ) {
a = i; b = j;
break l;
}
}
}
StringBuilder sb = new StringBuilder();
for( int i=0; i<arr.length; i++ ) {
if( i == a || i == b ) continue;
sb.append( arr[i] ).append( "\n" );
}
System.out.println( sb );
}
}
-파이썬
from sys import stdin
input = stdin.readline
arr = []; hap = 0
for i in range( 9 ):
arr.append( int( input() ) )
hap += arr[i]
arr.sort()
bre = False
for i in range( len(arr) ):
for j in range( i+1, len(arr) ):
if hap - ( arr[i] + arr[j] ) == 100:
for k in range( len(arr) ):
if k == i or k == j: continue
else: print( arr[k] )
bre = True
break
if bre: break
728x90
반응형
'데이터 엔지니어링 정복 > Algorithm' 카테고리의 다른 글
[수학] 백준 - 수 이어쓰기 1 (0) | 2021.08.23 |
---|---|
[브루트포스] 백준 - 사탕 게임 (0) | 2021.08.22 |
[수학] 백준 - 골드바흐의 추측 (0) | 2021.08.20 |
[수학] 백준 - 약수의 합 (0) | 2021.08.20 |
[수학] 백준 - 약수의 합2 (2) | 2021.08.20 |
Comments