상자 넣기

https://www.acmicpc.net/problem/1965

풀이

  • dp

  • 가장 긴 증가하는 수열과 같은 문제

  • d[i] : i 를 마지막으로 하는 가장 긴 증가하는 수열

  • d[i]

      0 번째 ~ i-1 번째까지 조사.
    

    ​ k번째에서 i번째 수보다 작고, 더 긴 증가하는 부분수열이 된다면
    ​ d[i] = d[k] + 1

Read more

이동하기

https://www.acmicpc.net/problem/11048

풀이

  • dp

  • 잘못된 접근 : 현재 위치에서, 갈 수 있는 곳만 생각했음

  • 올바른 접근 : 현재 위치를, 올 수 있는 곳을 생각해야함

    1
    2
    3
    4
    1 2
    3 4

    4를 올 수 있는 곳은 1, 2, 3
  • d[i][j] : i,j 위치에서의 사탕 개수 최대값

    Max(
    ​ [i-1][j-1]에서의 사탕개수 최대값,
    ​ [i][j-1]에서의 사탕개수 최대값,
    ​ [i-1][j]에서의 사탕개수 최대값) + i,j에서의 사탕개수

Read more

RGB 거리

https://www.acmicpc.net/problem/1149

풀이

  • dp

  • d[i][color]

      i 번째 집을 color 로 칠했을 때, 1 번째~ i 번째 까지 든 최소 비용
    
  • d[i+1][0] = i번째 집을 1번으로 칠했을 때 든 최소 비용과, 2번으로 칠했을 때 든 최소비용 중 작은 값

  • d[i+1][1] = i번째 집을 0번으로 칠했을 때 든 최소 비용과, 2번으로 칠했을 때 든 최소비용 중 작은 값

  • d[i+1][2] = i번째 집을 0번으로 칠했을 때 든 최소 비용과, 1번으로 칠했을 때 든 최소비용 중 작은 값

Read more