spring2   3년 전

밑에 비슷한 질문이 있었는데 제코드에 잘 이해가 안돼서 질문올립니다 ㅠㅜ

go함수는 아무것도 return 하지 않고 의미없는 계산을 안부르는것 같은데 시간초과가나서 뭐가 문제인지 알고싶습니다 ...ㅠㅜ

spring2   3년 전

void go(int idx, int curvol) {

if (idx > n + 1 || curvol > m || curvol < 0) return;

d[idx][curvol] = true;

if (idx + 1 > n + 1) return;

if (curvol - a[idx] >= 0 && d[idx + 1][curvol - a[idx]] != true)

go(idx + 1, curvol - a[idx]);

if (curvol + a[idx] <= m && d[idx + 1][curvol + a[idx]] != true)

go(idx + 1, curvol + a[idx]);

return;

}

이렇게 하니까 되군요

그런데 문제 쫌 헷갈리네요

마지막 곡에서 당연히 볼륨이 0이면 연주할수 없다고 생각해서 -1 출력했는데 

0으로 출력해야 맞다고 나오네요 .. ㅠ

kjg933   3년 전

지나가다가 ㅎㅎㅎ

if (idx > n + 1 || curvol > m || curvol < 0) return; 

이부분은 아예 지워도 상관없을 것 같네요 ㅎㅎㅎ 

댓글을 작성하려면 로그인해야 합니다.