-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
7-T 5557 1학년
23.06.07 23:36 작성 조회수 326
0
#include <iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<queue>
#include<numeric>
#include<map>
#include<cstring>
using namespace std;
typedef long long ll;
int N;
ll arr[104][10004];
int num[104];
int Size;
ll go(int idx, int cur) {
if (cur > 20 || cur < 0) {
return 0;
}
// 기저사례
if (idx == N - 1) {
if (cur == num[idx]) {
return 1;
}
return 0;
}
ll& ret = arr[idx][cur];
if (ret != 0) {
return ret;
}
ret += go(idx + 1, num[idx] + cur);
ret += go(idx + 1, cur - num[idx]);
return ret;
}
int main() {
cin >> N;
for (int i = 0; i < N; i++) {
cin >> num[i];
}
cout << go(0, 0);
return 0;
}
해당하는 코드에 대한 반례나 틀린점이 있을까요??
답변을 작성해보세요.
0
큰돌
지식공유자2023.06.09
안녕하세요 0508님 ㅎㅎ
들여쓰기 없이 질문주시면 제가 디버깅하기가 힘듭니다.
0주차 - 질문하는법 참고해서 질문 부탁드립니다. 여기 대댓으로 남겨주시면 됩니다.
감사합니다.
답변 1