백준 2309번: 일곱 난쟁이 (C++)
2023. 1. 21. 03:01ㆍ알고리즘/브루트포스
https://www.acmicpc.net/problem/2309
풀이
그냥 완전 탐색으로 풀어도 되지만 순열 연습용으로 풀었다.
우선 난쟁이들을 정렬하고 순열을 돌려주었다.
그리고 앞의 7명의 값을 더했을 때 100이 되면 종료시키는 방법으로 구현했다.
전체 코드
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int Dwarf[9];
int sum = 0;
for (int i = 0; i < 9; i++) cin >> Dwarf[i];
sort(Dwarf, Dwarf + 9);
do {
for (int i = 0; i < 7; i++) sum += Dwarf[i];
if (sum == 100) {
for (int i = 0; i < 7; i++) cout << Dwarf[i] << '\n';
return 0;
}
sum = 0;
} while (next_permutation(Dwarf, Dwarf + 9));
}
'알고리즘 > 브루트포스' 카테고리의 다른 글
백준 1018번: 체스판 다시 칠하기 (C++) (0) | 2023.01.26 |
---|---|
백준 13140번: Hello World! (C++) (0) | 2023.01.21 |
백준 10974번: 모든 순열 (C++) (1) | 2023.01.21 |
백준 2890번: 카약 (C++) (0) | 2023.01.19 |
백준 1057번: 토너먼트 (C++) (0) | 2023.01.17 |