• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

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;

}

 

해당하는 코드에 대한 반례나 틀린점이 있을까요??

답변 1

답변을 작성해보세요.

0

안녕하세요 0508님 ㅎㅎ

들여쓰기 없이 질문주시면 제가 디버깅하기가 힘듭니다.

0주차 - 질문하는법 참고해서 질문 부탁드립니다. 여기 대댓으로 남겨주시면 됩니다.

 

감사합니다.