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

리트코드 daily challenge - 226. Invert Binary Tree

 처음 풀었을 때 3ms가 나왔다. DFS라는 함수를 따로 정의했기 때문인 것 같은데... 굳이 새로운 함수 안 짜고 바로 풀면 0ms가 나온다.

 

프로그래머스 lv 1 삼총사

 3sum 문제인데, 여기서는 제한 조건이 널널해서 3중for문으로 풀어도 된다.

 

프로그래머스 lv 1 크기가 작은 부분 문자열

 substring을 활용하는 문제

 

프로그래머스 lv 1 콜라 문제

반복문 쓰면 되는 수학 문제

 

프로그래머스 lv 1 푸드 파이트 대회

반복문 + reverse 쓰는 문제

 

프로그래머스 lv 1 가장 가까운 같은 글자

char c의 [이전 위치]를 기억해 두면 쉬운 문제. DP의 일종.

 

프로그래머스 lv 2 귤 고르기

크기별 귤 개수를 map으로 정렬하고, 귤 개수가 적은 것부터 정렬한 후, 귤 개수가 적은 귤부터 더 뺄 수 없을 때까지 빼면 됨

#include <string>
#include <vector>
#include <map>
#include <algorithm>

using namespace std;

typedef pair<int, int> pii;

bool cmp(const pii &a, const pii &b){
    if(a.second == b.second) return a.first < b.first;
    else return a.second < b.second;
}

int solution(int k, vector<int> tangerine) {    
    // 크기별 귤 개수 정렬
    map<int, int> m;
    for(int t : tangerine){
        if(m.find(t) == m.end()) m[t] = 1;
        else m[t]++;
    }
    
    // 귤 개수 적은 것 부터 오름차순 정렬
    vector<pii> v(m.begin(), m.end());
    sort(v.begin(), v.end(), cmp);
    
    // 개수 작은 것부터 뺌
    int total = tangerine.size();
    for(int i = 0; i<v.size(); i++){
        if(total - v[i].second < k) return v.size() - i;
        total -= v[i].second;
    }
    
    int answer = 0;
    return answer;
}

 

 

 

 

 

 

저작자표시 (새창열림)

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

23.02.20. 풀었던 문제들  (0) 2023.02.20
23.02.19. 풀었던 문제들  (0) 2023.02.19
23.02.17. 풀었던 문제들  (0) 2023.02.17
22.09.08. 풀었던 문제들  (0) 2022.09.08
22.09.07. 풀었던 문제들  (0) 2022.09.07
    hyelie
    hyelie

    티스토리툴바