[boj] (s1) 11048 이동하기

강신현·2022년 4월 20일
0

✅ DP

문제

링크

1. 문제 접근 및 해결 로직

이전 위치에 따라 사탕 개수가 달라진다.
사탕 개수는 최대가 되야 하므로
1. 왼쪽 위에서 온 경우
2. 위에서 온 경우
3. 왼쪽에서 온 경우
중에 사탕 개수가 최대가 되는 값을 넣어주면 된다.

  • 정의
    dp[i][j]dp[i][j] : (i,j)(i,j)에서 사탕의 최대 개수
  • 구하는 답
    dp[N][M]dp[N][M]
  • 초기값
    dp[1][1]=candy[1][1]dp[1][1]=candy[1][1]
  • 점화식
    dp[i][j]=max(dp[i1][j1],max(dp[i1][j],dp[i][j1]))+candy[i][j]dp[i][j] = max(dp[i - 1][j - 1], max(dp[i - 1][j], dp[i][j - 1]))+candy[i][j]

2. 코드

3. 시간 복잡도 분석

경우의 수를 모두 구하므로
O(N)O(N)

4. 문제에서 중요한 부분

DP문제는 점화식을 도출하는 것이 중요하다.
Bottm Up(반복문)으로 풀지 Top Down(재귀)으로 풀지는 선택사항

profile
땅콩의 모험 (server)

0개의 댓글