반응형
알고리즘 분류 : 브루트 포스
난쟁이 9명 중 7명 키의 합이 100이 되는 것을 찾는 간단한 문제다. 9명 중 2명을 빼서 100을 찾는다고 생각하면 더 쉽다.
- 9명의 키를 입력받으면서 모두 더한다. 입력이 끝나면 정렬한다.
- 모두 더한 값에서 2명을 빼서 100이 되는 값을 찾는다.
- 2명을 제외하고 순서대로 출력한다.
C++ 소스코드
#include <cstdio> #include <algorithm> const int N = 9; int a[N], sum; void solve() { std::sort(a, a+N); for (int i=0; i<N; i++) { for (int j=i+1; j<N; j++) { if (sum-a[i]-a[j] == 100) { for (int k=0; k<N; k++) { if (k != i && k != j) { printf("%d\n", a[k]); } } return; } } } } int main() { for (int i=0; i<N; i++) { scanf("%d", &a[i]); sum += a[i]; } solve(); return 0; }
Python 3 소스코드
from sys import stdin input = stdin.readline N = 9 a = sorted([int(input()) for _ in range(N)]) def solve(): for i in range(N): for j in range(i+1, N): if sum(a)-a[i]-a[j] == 100: for k in range(N): if k != i and k != j: print(a[k]) return solve()
참고
- 백준 온라인 저지 : BOJ 2309
반응형