반응형
#include <iostream>
#include <string>
using namespace std;
int arr[5];
//int cnt;
int used[5];
int direct[3] = { -1,0,1 };
int path[5];
int maxd[5];
int maxx = 0;
void dfs(int lev, int sum) {
if (lev == 5) {
if (sum > maxx) {
//cout << "==" << sum << endl;
maxx = sum;
for (int i = 0; i < 5;i++) {
maxd[i] = path[i];
}//cout << endl;
}
return;
}
for (int i = 0; i < 5;i++) {
int cnt = 0;
if (used[i] == 0) {
used[i] = 1;
path[i] = 1;
cnt++;
int t1 = 0, t2 = 0;
if (i - 1 >= 0 && used[i-1] ==0) {
used[i - 1] = 1;
cnt++;
t1 = 1;
}
if (i + 1 < 5 && used[i + 1] == 0) {
used[i + 1] = 1;
cnt++;
t2 = 1;
}
dfs(lev + cnt, sum + arr[i]);
used[i] = 0;
path[i] = 0;
if (t1 == 1) used[i - 1] = 0;
if (t2 == 1) used[i + 1] = 0;
}
}
}
int main() {
for (int i = 0; i < 5;i++) {
cin >> arr[i];
}
dfs(0, 0);
int prinnt[5] = { 0 };
int head = 0;
for (int i = 0; i < 5;i++) {
if (maxd[i] == 1) {
prinnt[head++] = arr[i];
}
}
for (int i = 0; i < head - 1;i++) {
cout << prinnt[i]<<"+";
}cout << prinnt[head - 1];
cout << "=" << maxx;
}
쉬운 방법 없나...
특히 저 used배열 하기가 가장 어렵
반응형
'C언어 > 문제풀다 하나씩' 카테고리의 다른 글
링크드리스트 건너건너 출력하기 (0) | 2020.06.23 |
---|---|
메모리 풀로 링크드리스트 만들기 (3) | 2020.06.23 |
runtimeerror 나서 틀린 문제 고기 뒤집기 OXOOX (0) | 2020.06.04 |
음료 포인트 계산하기 쉬움. (0) | 2020.06.04 |
trial and error! 연산자 순열 문제 (0) | 2020.05.29 |
경로 찾기 장애물 있고 (0) | 2020.05.29 |
등수일때는 index-1하기 (0) | 2020.05.27 |
string == 이거 된다! (0) | 2020.05.27 |