작성
·
378
0
http://boj.kr/9f41568a9d9440f2b2318d7b40498f83
안녕하세요 강의 듣기 전 제가 작성해봤던 코드입니다.
문제를 처음 봤을 때 순열이 떠올라서 순열로 풀어보려 했는데, 결과가 제가 생각했던 대로 나오지 않아서요.
제가 작성한 방식으로는 못푸는건지, 아니면 제가 놓치고 있는 부분이 있는건지 궁금합니다ㅜㅡㅜ
답변 1
1
안녕하세요 ㅎㅎ
순열을 기반으로 각 경우의 수 마다 >> 순열을 다시 이어가면서 경우의수를 체크한다는 말씀이시죠?
그렇다면 이렇게 해서 다시 해보시겠어요?
제가 구조를 한번 짜봤습니다.
#include <bits/stdc++.h>
using namespace std;
const int INF = 987654321;
int n, cnt, ret = INF, scv[4];
vector<int> v;
void attack(){
//scv가 다 0이면 return; 해당 경우의 수.
if(){
return;
}
do{
temp = scv;
//이부분에 attack에 관한 로직.
attack();
scv = temp;
}while(next_permutation(v.begin(), v.end());
}
int main(){
cin >> n;
for(int i = 0; i < n; i++){
cin >> scv[i];
v.push_back(i);
}
attack();
cout << ret << '\n';
return 0;
}
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.