BOJ 2309 일곱난쟁이
BOJ 2309 일곱난쟁이
문제링크 : https://www.acmicpc.net/problem/2309
요약
9명의 난쟁이중 키의 합이 100이되는 7명을 뽑아 오름차순으로 출력
풀이
7명의 난쟁이의 키의 합을 100으로 맞춰야 하니깐 전체 난쟁이의 키의 합에서 100을 뺀만큼의 수를 두명의 난쟁이로 맞춰도 된다. -> 9C7 = 9C2 , 주의해야 할점은 스페셜저지 문제는 정답이 여러개가 나올수가 있기때문에 그중에 한개만 출력하면 정답처리된다. 그래서 조건에 맞는 2명의 난쟁이를 최초로 찾으면 탐색을 멈추고 탈출해야 한다. 그리고 sort를 이용해서 오름차순으로 정렬해준다.
코드
#include<iostream>
#include<algorithm>
using namespace std;
int arr[9],cnt=0;
int main() {
ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
for (int i = 0; i < 9; i++){
cin >> arr[i];
cnt += arr[i];
}
for (int i = 0; i < 9; i++) {
for (int j = i + 1; j < 9; j++) {
if (arr[i] + arr[j] == (cnt - 100)) {
arr[i] = -1, arr[j] = -1;
break;
}
}
if (arr[i] == -1)break;
}
sort(arr, arr + 9);
for (int i = 2; i < 9; i++)
cout << arr[i] << "\n";
return 0;
}
Comments