Algorithm/Baekjoon Online Judge
백준알고리즘 2309 일곱난쟁이 풀이 C++
감성적인 개발자
2021. 7. 2. 00:06
https://www.acmicpc.net/problem/2309
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
C++ 정답소스
#include <iostream>
#include <algorithm>
using namespace std;
int solution(int sum, int *arr){
for (int i = 0; i < 8; i++){
for (int j = i + 1; j < 9; j++){
if (sum - (arr[i] + arr[j]) == 100){
arr[i] = -1;
arr[j] = -1;
return 0;
}
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int arr[9], sum = 0;
for (int i = 0; i < 9; i++){
cin >> arr[i];
sum += arr[i];
}
solution(sum, arr);
sort(arr, arr + 9);
for (int i = 2; i < 9; i++){
cout << arr[i] << '\n';
}
}
9개의 값 중 2개를 더 했을 때 (합계 - 100) 과 같은 값을 찾아 -1로 처리해준다.
출력 전, sort를 이용해 오름차순으로 정렬한 뒤 앞의 인덱스 2개는 제외하여 출력.