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.04.24. 풀었던 문제들

Leetcode 1046. Last Stone Weight

 PQ를 이용하면 쉽게 풀 수 있는 문제. 딱히 설명할 거리도 없다,,,

// Runtime 0 ms Beats 100%
// Memory 7.7 MB Beats 41.71%

class Solution {
public:
    int lastStoneWeight(vector<int>& stones) {
        priority_queue<int, vector<int>, less<int>> pq;
        for(int stone : stones) pq.push(stone);

        while(pq.size() > 1){
            int f = pq.top(); pq.pop();
            int s = pq.top(); pq.pop();
            if(f != s) pq.push(abs(f - s));
        }

        if(pq.empty()) return 0;
        return pq.top(); // *** 실수 : 종료조건
    }
};

 

시간복잡도

 stones size를 n이라고 하면 pq에 n번의 insert, worst case n번의 pop이 있으므로 O(nlogn)이다.

 

공간복잡도

 pq, stones에 O(n)만큼 사용하므로 O(n)

 

 

 

 

 

 

저작자표시 (새창열림)

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

23.04.26. 풀었던 문제들  (0) 2023.04.26
23.04.25. 풀었던 문제들  (0) 2023.04.25
23.04.23. 풀었던 문제들  (0) 2023.04.23
23.04.22. 풀었던 문제들  (0) 2023.04.22
23.04.21. 풀었던 문제들  (0) 2023.04.21
    hyelie
    hyelie

    티스토리툴바