[백준][C++] 1309번: 동물원 <154>


[백준][C++] 1309번: 동물원 <154>

직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. 생각의 흐름 원래는 1차원 배열을 생각했지만, case 별로 3개의 경우로 나뉘기 때문에 2차원 배열로 해야겠다는 생각이 들었다. DP[n][m]의 의미부터 정하려고 노력하였다. DP[n][m] 은 n번째 행에 case i의 동물을 두는방법이다. 하나의 행은 2칸이다 다음과 같이 말이다. 여기서 동물은 둘수있는 방법이 총 3가지 이다. case 0) 왼쪽에 1마리 case 1) 오른쪽에 1마리 case 2) 양쪽모두 비어두기 따라서 d[n][i] = n번째 행에 i방법의 동물을 놓는 경우의 수라고 하면 d[n][0] = d[n-1][1] + d[n-1][2] d[n][1] = d[n-1][0] + d[n-1][2]..........



원문링크 : [백준][C++] 1309번: 동물원 <154>