gofkdvjvl   4년 전

dp[i]=min(dp[i],dp[i-j]+p[j]);

이 부분은  dp를 모두 -1로 초기화 하고 if(dp[i]=-1 || dp[i]>dp[i-j]+p[j]) dp[i]=dp[i-j]+p[j] 이런식으로 바꾸면 정답이 되는데

위처럼 쓰면 안되는 이유가 뭘까요.. ㅠㅠ

최대 값으로 초기화해서 되야 할 것같은데.. 답답하네요 

djm03178   4년 전

memset은 바이트 단위로 초기화하기 때문에, 1바이트를 넘어서는 크기로 int 배열을 채울 수 없습니다. 굳이 하자면 1바이트 내의 패턴을 4번 반복해서 나오는 4바이트 값을 대입할 수는 있습니다.

gofkdvjvl   4년 전

다른 문제를 풀면서 다시 보니 이해됐습니다 감사합니다 

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