๋ฌธ์ :
๋ถ์ :
๋ธ๋ก ์ฆ์์์๋ ์ด๋ ค์ ๋ค.. ์์ผ๋ก ๋ธ๋ฃจํธ ํฌ์ค, ๋ฐฑํธ๋ํน์ชฝ์ ์ข ๋ ๊ณต๋ถํด ๋ณด์์ผ๊ฒ ๋ค.
์ข ๋ง๋ถ์์ ๋ณด์๋ ์์ด๋์ด๋ฅผ ๊ฐ์ง๊ณ ๋ฌธ์ ์ ๊ทผ์ ํ์๋ค.
๊ฐ ๋์์ด๋ค์ 100์ ํฌํจํ๋๋ฐ ์ํ๊ฑฐ๋ ์ ์ํ๊ฑฐ๋ ๋์ค ํ๋์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ชจ๋ ๋์์ด๋ค์ ํ์ํ๋๋ฐ return ๋ฌธ์ ๋ง๋ ์ฌ๊ท๊ฐ ๋๋๊ฒ ๋๋ฉด visit๋ฅผ false๋ก ํด ์ํ์ง ์๊ฒ๋ ๋ง๋ค๊ณ ๋ค๋ฅธ ์์๋ค์ ํ์ํ๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ ํ์ฌ ์ํ๋ ์์๋ค๋ง์ ์ ๋ ฌํด ์ถ๋ ฅํ๋ค.
C++ ์ฝ๋ :
//
// 2309_dwarf7.cpp
// SOMA๐ฉ๐ป๐ป
//
// Created by JoSoJeong on 2021/04/06.
//
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
vector<int>arr;
vector<int>re_arr;
int visit[100];
int cnt = 0;
void brute_dwarf7(int score, int cnt){
if (score == 100 and cnt == 7){
sort(re_arr.begin(), re_arr.end());
for(int i = 0; i < 7; i++){
cout << re_arr.at(i) << "\n";
}
exit(0);
}
if (cnt > 7 || score > 100){
return;
}
for(int i= 0; i <9; i++){
if(visit[arr[i]] == false){
visit[arr[i]] = true;
re_arr.push_back(arr[i]);
brute_dwarf7(score + arr[i], cnt + 1);
visit[arr[i]] = false;
re_arr.pop_back();
}
}
return;
}
int main(){
memset(visit, false, sizeof(visit));
for(int i =0; i < 9; i++){
int temp;
cin >> temp;
arr.push_back(temp);
}
brute_dwarf7(0, 0);
return 0;
}
'Algorithm๐ฐ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 9012 ๊ดํธ string (0) | 2021.04.21 |
---|---|
[๋ฐฑ์ค] 1110 ๋ํ๊ธฐ ์ฌ์ดํด string (0) | 2021.04.21 |
[๋ฐฑ์ค] 1477 ํด๊ฒ์ ์ธ์ฐ๊ธฐ (0) | 2021.04.05 |
[๋ฐฑ์ค] ์น์ฆ 2636 bfs (0) | 2021.04.02 |
[๋ฐฑ์ค] 14502 ์ฐ๊ตฌ์ bfs (0) | 2021.04.01 |
๋๊ธ