문제풀이/백준
[C++] 백준 - 2309 : 일곱 난쟁이
orubt
2020. 3. 10. 00:13
반응형
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
풀이 ) 완전 탐색
일곱 난쟁이의 키의 합이 100이므로 전체 9명의 합을 tot라고 했을 때
완전탐색을 통해서 2명의 합이 tot-100인 조합을 찾는 문제이다.
정렬은 sort()를 사용했다.
#include <cstdio> // scanf(), printf()
#include <algorithm> // sort()
using namespace std;
int main(void)
{
int arr[10] = {0, }, tot = 0;
for(int i = 0; i < 9; ++i){
scanf("%d", arr+i);
tot += arr[i];
}
sort(arr, arr+9);
int flag = 0;
for(int i = 0; i < 8; ++i){
for(int j = i; j < 9; ++j){
if (arr[i]+arr[j] == tot-100){
arr[i] = 0;
arr[j] = 0;
flag++;
break;
}
}
if(flag)
break;
}
for(int i= 0; i < 9; ++i)
if(arr[i])
printf("%d\n", arr[i]);
}
반응형