https://school.programmers.co.kr/learn/courses/30/lessons/138476
내가 통과한 코드
int solution(int k, vector<int> tangerine) {
int answer = 0;
vector<int> box(10000001);
for (int i : tangerine) {
box[i]++;
}
sort(box.rbegin(), box.rend());
for (int i = 0; i < box.size(); i++) {
if (box[i] < k) {
answer++;
k -= box[i];
}
else {
answer++;
break;
}
}
return answer;
}
가장 효율적이게 보이던 코드
#include <bits/stdc++.h>
using namespace std;
int solution(int k, vector<int> tangerine) {
int answer = 0;
int m = *max_element(tangerine.begin(), tangerine.end());
vector<int> v(m, 0);
for(auto& t : tangerine){
v[t - 1]++;
}
stable_sort(v.rbegin(), v.rend());
for(int i = 0 ; i < v.size() ; i++){
answer++;
k -= v[i];
if(k <= 0) return answer;
}
return answer;
}
'콘솔창 & 윈도우창 > 코딩 테스트' 카테고리의 다른 글
[PCCP 기출문제] LV.1 붕대감기 (0) | 2024.11.17 |
---|---|
프로그래머스 LV.2 오픈채팅방 (카카오 코테) (0) | 2024.11.15 |
프로그래머스 LV.2 기능개발 (1) | 2024.11.14 |
프로그래머스 LV.2 더 맵게 (0) | 2024.11.13 |
프로그래머스 LV.1 신규 아이디 추천 (1) | 2024.11.13 |