hyelie
hyelie
Hyeil Jeong
       
글쓰기    관리    수식입력
  • 전체보기 (495)
    • PS (283)
      • Algorithm (28)
      • PS Log (244)
      • Contest (6)
      • Tips (5)
    • Development (52)
      • Java (14)
      • Spring (23)
      • SQL (2)
      • Node.js (2)
      • Socket.io (3)
      • Study (4)
      • Utils (4)
    • DevOps (36)
      • Git (5)
      • Docker (4)
      • Kubernetes (2)
      • GCP (3)
      • Environment Set Up (8)
      • Tutorial (12)
      • Figma (2)
    • CS (74)
      • OOP (7)
      • OS (24)
      • DB (2)
      • Network (24)
      • Architecture (0)
      • Security (2)
      • Software Design (0)
      • Parallel Computing (15)
    • Project (15)
      • Project N2T (5)
      • Project ASG (0)
      • Project Meerkat (1)
      • Model Checking (7)
      • Ideas (2)
    • 내가 하고싶은 것! (34)
      • Plan (16)
      • Software Maestro (10)
      • 취준 (8)
hELLO · Designed By 정상우.
hyelie

hyelie

PS/PS Log

23.03.27. 풀었던 문제들

Leetcode 64. Minimum Path Sum

 간단한 DP 문제. array의 top left부터 bottom right까지, [오른쪽으로 움직이거나, 아래로 움직이거나] 2개의 선택지로 도달하는 최소 weight를 얻어내는 방법이다. graph로 생각하면 top left부터 모든 vertex까지 dijkstra로 알아내야 하면 O(nlogn)이다. 그러나 이 문제의 경우 DP를 사용할 수 있다.

  •  dp[r][c] = weight[r][c] + (dp[r-1][c], dp[r][c-1])
// Runtime 7 ms Beats 90.29%
// Memory 9.5 MB Beats 98.74%

class Solution {
public:
    int minPathSum(vector<vector<int>>& grid) {
        int m = grid.size(), n = grid[0].size();

        for(int c = 1; c<n; c++){
            grid[0][c] += grid[0][c-1];
        }
        for(int r = 1; r<m; r++){
            grid[r][0] += grid[r-1][0];
        }

        for(int r = 1; r<m; r++){
            for(int c = 1; c<n; c++){
                grid[r][c] += min(grid[r-1][c], grid[r][c-1]);
            }
        }

        return grid[m-1][n-1];
    }
};

 

시간복잡도

 DP 시 array의 모든 element를 한 번씩 탐색하므로 O(mn)

 

공간복잡도

 추가 공간을 사용하지 않는다. 문제 조건에서 m by n의 array를 사용하므로 O(mn)

 

 

 

 

 

 

 

저작자표시 (새창열림)

'PS > PS Log' 카테고리의 다른 글

23.03.29. 풀었던 문제들  (0) 2023.03.29
23.03.28. 풀었던 문제들  (0) 2023.03.28
23.03.26. 풀었던 문제들  (1) 2023.03.26
23.03.25. 풀었던 문제들  (0) 2023.03.25
23.03.24. 풀었던 문제들  (2) 2023.03.24
    hyelie
    hyelie

    티스토리툴바