728x90
1. ๋ฌธ์ ์์ฝ
k ๊ฐ๋ฅผ ๊ณจ๋ผ ์์ ํ๋์ ๋ด์ ํ๋งค
๊ทค์ ํฌ๊ธฐ๋ณ๋ก ๋ถ๋ฅํ์ ๋ ์๋ก ๋ค๋ฅธ ์ข
๋ฅ์ ์๋ฅผ ์ต์ํํ๊ณ ์ถ์
์ฒ์์๋ ๋ฌธ์ ๊ฐ ํท๊ฐ๋ ธ๋๋ฐ ๊ฒฐ๊ตญ ๊ฐ์ ํฌ๊ธฐ์ ๊ทค์ ๋ชจ์์ ์ต๋ํ ํ๋งคํ๋ ค๊ณ ํ๋ ๋ฌธ์ ์ด๋ค
2. ์ฝ๋
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(const pair<int,int>& lValue,const pair<int,int>& rValue){
return lValue.second>rValue.second;
}
int solution(int k, vector<int> tangerine) {
int answer = 0;
vector<pair<int,int>> tangerinePair;
sort(tangerine.begin(),tangerine.end());
/*for(int i=0;i<tangerine.size();i++){
printf("%d ",tangerine[i]);
}
printf("\n");*/
int prev = tangerine[0];
tangerinePair.push_back(make_pair(tangerine[0],0));
for(int i=0;i<tangerine.size();i++){
//printf("%d ",tangerine[i]);
if(prev==tangerine[i]){
tangerinePair[tangerinePair.size()-1].second++;
}
else{
tangerinePair.push_back(make_pair(tangerine[i],1));
prev=tangerine[i];
}
}
//printf("\n");
sort(tangerinePair.begin(),tangerinePair.end(),cmp);
int count=0;
for(int i=0;i<tangerinePair.size();i++){
//printf("%d %d\n",tangerinePair[i].first,tangerinePair[i].second);
if(count>=k) break;
count+=tangerinePair[i].second;
answer++;
}
return answer;
}
3. ํด์ค
๋จผ์ vector<int> tangerine ๋ฒกํฐ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํฉ๋๋ค
์ ๋ ฌํ ๋ค์ vector<pair<int,int>> tangerinePair์ <๊ทค์ํฌ๊ธฐ,๊ฐฏ์>๋ฅผ ๋ด์๋ค
int prev = tangerine[0];
tangerinePair.push_back(make_pair(tangerine[0],0));
for(int i=0;i<tangerine.size();i++){
if(prev==tangerine[i]){
tangerinePair[tangerinePair.size()-1].second++;
}
else{
tangerinePair.push_back(make_pair(tangerine[i],1));
prev=tangerine[i];
}
}
๊ทธ ํ, ๊ทค์ ๊ฐฏ์์ ๋ฐ๋ผ vector<pair<int,int> tangerinePiar๋ฅผ ์ ๋ ฌํด์ฃผ์๋ค
sort(tangerinePair.begin(),tangerinePair.end(),cmp);
bool cmp(const pair<int,int>& lValue,const pair<int,int>& rValue){
return lValue.second>rValue.second;
}
๊ทธ๋ฆฌ๊ณ for๋ฌธ์ ์ด์ฉํ์ฌ ์ค๋ณต๋๋ ๊ฐฏ์๋ค์ k์ ๋น๊ตํ์ฌ ๋ํด์ค์ ์๋ฅผ ๋์ด๊ฐ๋ฉด breakํ๋๋ก ์ ์ํ์ฌ์ฃผ์๋ค
int count=0;
for(int i=0;i<tangerinePair.size();i++){
if(count>=k) break;
count+=tangerinePair[i].second;
answer++;
}
๋ฐ์ํ
'์๊ณ ๋ฆฌ์ฆ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ์ฐ๊ธฐ (0) | 2025.01.02 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ํ ์ด๋ธ ํด์ ํจ์ (0) | 2024.12.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ง๋ฒ์ ์๋ฆฌ๋ฒ ์ดํฐ (0) | 2024.12.30 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ถ๋ ๊ฐ๊ธฐ (1) | 2024.01.16 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฒด์ก๋ณต (1) | 2023.11.15 |