https://www.acmicpc.net/problem/2309
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
백준 기초 알고리즘 강의를 수강하며 같이 푼 문제이다.
경우의 수가 9C7 = 9C2 = 36이다.
매우 적은 수라 그냥 다 해보기로 했다. (이게 브루트포스)
7개 다 찾는 것보단 그냥 해당 안되는 2개를 찾는게 빠르겠다 싶었다.
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int arr[9];
int num = 9;
int sum = 0;
for (int i = 0; i < 9; i++)
{
cin >> arr[i];
sum += arr[i];
}
sort(arr, arr + 9);
for (int i = 0; i < num; i++)
{
for (int j = i + 1; j < num; j++)
{
if (sum - (arr[i] + arr[j]) == 100)
{
for (int k = 0; k < num; k++)
{
if (k == i || k == j)
continue;
cout << arr[k] << '\n';
}
return 0;
}
}
}
}
먼저 sort를 해줘야 나중 출력할 때 오름차순으로 바로 출력이 가능해서 했다.
'백준 문제풀이 > 브론즈2' 카테고리의 다른 글
백준 2798번 - 블랙잭 (0) | 2021.12.17 |
---|---|
백준 2231번 - 분해합 (0) | 2021.12.17 |
백준 2292번 - 벌집 (0) | 2021.11.30 |
백준 10809번 - 알파벳 찾기 (0) | 2021.11.25 |
백준 1173 - 운동 (0) | 2021.11.10 |