※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 3085번 문제인 사탕 게임이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/2309
9명중 7명을 고르는 경우의 수는 36가지로 충분히 적다. 이 모든 경우의 수를 직접 조사하여 합이 100이 되는 7명의 난쟁이쌍을 찾아 문제를 해결할 수 있다.
오름차순으로 출력해야하므로 정렬을 먼저 한다면 코드를 편하게 작성할 수 있다.
이와 같은 쌍을 찾는 방법은 다양하게 존재하지만, 가장 단순무식한 방법으로는 7중반복문을 작성해 문제를 해결할 수도 있다. 아래의 코드를 참고해보자.
아래는 제출한 소스코드이다:
#include <iostream>
#include <algorithm>
using namespace std;
int arr[9];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
for (int i = 0; i < 9; i++) cin >> arr[i];
sort(arr, arr + 9);
for (int i1 = 0; i1 < 9; i1++) {
for (int i2 = i1 + 1; i2 < 9; i2++) {
for (int i3 = i2 + 1; i3 < 9; i3++) {
for (int i4 = i3 + 1; i4 < 9; i4++) {
for (int i5 = i4 + 1; i5 < 9; i5++) {
for (int i6 = i5 + 1; i6 < 9; i6++) {
for (int i7 = i6 + 1; i7 < 9; i7++) {
if (arr[i1] + arr[i2] + arr[i3] + arr[i4] + arr[i5] + arr[i6] + arr[i7] == 100) {
cout << arr[i1] << '\n' << arr[i2] << '\n' << arr[i3] << '\n' << arr[i4] << '\n' << arr[i5] << '\n' << arr[i6] << '\n' << arr[i7];
return 0;
}
}
}
}
}
}
}
}
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 1748 // C++] 수 이어 쓰기 1 (0) | 2022.11.14 |
---|---|
[BOJ 25965 // C++] 미션 도네이션 (0) | 2022.11.14 |
[BOJ 24957 // C++] Loop of Chocolate (0) | 2022.11.13 |
[BOJ 7581 // C++] Cuboids (0) | 2022.11.13 |
[BOJ 25773 // C++] Number Maximization (0) | 2022.11.13 |