sj06152   1년 전

몇 개의 n,k에서 테스트 해보고, 그 결과 아래와 같은 점화식을 얻었습니다

f(0,k)=1, f(n,1)=1

f(n,2)= n+1

f(n,k)=f(n,k-1)+f(n-1,k-1)+...+f(0,k-1)

그래서 아래 소스코드처럼 코드를 작성했습니다.

dp 각 줄은 [k=1,k=2,..k=k]일 때 입니다.

따라서 제가 의도한 것은 

n=5, k=3 일 때 (f(5,3)=f(5,2)+f(4,2)+...+f(0,1)=6+5+...+1이므로)

[[1,1,1,1,1,1],

[1,2,3,4,5,6],

[1,1,1,1,1,21]]

의 dp배열이 생기고, 21을 출력하는 것입니다.

그러나 제가 작성한 코드를 실행시켜보면 dp 배열은 아래와 같습니다.

[[1, 2, 3, 4, 5, 21],
[1, 2, 3, 4, 5, 21],
[1, 2, 3, 4, 5, 21]]

k=1인 경우는 따로 저장하게끔 만들지도 않았는데, 왜 이렇게 저장되는지 모르겠습니다ㅠㅠ

혹 제가 잘못한 부분이나 놓친 부분을 아신다면 공유해주시면 너무 감사하겠습니다....! 

kimhs   1년 전

2줄을 아래 코드처럼 바꿔보세요.

그리고 얕은 복사와 깊은 복사의 차이점에 대해 찾아보시면 좋을 것 같습니다.

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