bsyzch   5년 전

정답코드를 보고나서 알고리즘은 이해를 했는데 배열의 초기화 부분이 아무리봐도 이해가 되지않습니다.

먼저 인풋값은 예제에 나와있는데로

3 10

1

2

5

를 넣어줬습니다.

line 15에서 맨처음 걸리는 if문의 조건이 j=1일때 인데

그럼 이때 수행하는 게 dp[1]=dp[1]+dp[1-1];

인데 dp[0]의 값은 line 7에서 1로 초기화 해줬기 때문에 있다쳐도

dp[1]의 값은 아무것도 초기화되지 않은 쓰레기값인데 어떻게 line 15가 제대로 컴파일 되는지 모르겠습니다..

그래서 line15 직전에 dp[1]을 출력해보면 0으로 초기화가 되있는데 대체 어느 부분에서 dp[1]이 초기화가 된거죠?

j=1이 아닌 다른값에 대해서도 같은 의문입니다..

이미 0으로 초기화가 되있는것 같은데 그럴거면

line3에서 전역변수로 선언할때 dp[10001]={0,}; 이런식으로 선언해야하는것 아닌가요?

sgchoi5   5년 전

int 전역변수는 0으로 초기화가 됩니다. 

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