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

Leetcode 1491. Average Salary Excluding the Minimum and Maximum Salary

 주어진 배열에서 max값, min값을 뺀 값들의 평균을 구하는 문제. 전체를 sort하고 min, max값만 빼고 평균 구해도 되지만 그러면 시간복잡도가 O(nlogn)이다. 그냥 한 번 순회하면서 min, max값, sum 구하고 구하는 게 나을 거라 생각했다.

// Runtime 0 ms Beats 100%
// Memory 7 MB Beats 98.74%

typedef long long ll;
class Solution {
public:
    double average(vector<int>& salary) {
        ll sum = 0, minValue = INT_MAX, maxValue = INT_MIN;
        for(int s : salary){
            minValue = min(minValue, (ll)s);
            maxValue = max(maxValue, (ll)s);
            sum += s;
        }
        sum = sum - minValue - maxValue;
        return (double)sum / (salary.size() - 2);
    }
};

 

시간복잡도

 처음부터 끝까지 1번 순회하므로 O(n)

 

공간복잡도

 별다른 추가공간 사용하지 않음 O(1)

 

 

 

 

 

저작자표시 (새창열림)

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

23.05.04. 풀었던 문제들  (0) 2023.05.04
23.05.02. 풀었던 문제들  (0) 2023.05.02
23.04.30. 풀었던 문제들  (0) 2023.04.30
23.04.29. 풀었던 문제들  (0) 2023.04.29
23.04.28. 풀었던 문제들  (0) 2023.04.28
    hyelie
    hyelie

    티스토리툴바