새소식

코딩테스트/프로그래머스

[C++] 귤 고르기

  • -

[문제]

코딩테스트 연습 - 귤 고르기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

[문제 풀이]

가장 많이 나온 종류의 귤부터 골랐을 때 k 숫자가 되기까지 총 몇종류의 귤을 고르는지 파악하는 문제이다.

 map과 같은 딕셔너리를 사용하면 쉽게 풀 수가 있다.

 

[회고]

.

[코드]

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

using namespace std;

int solution(int k, vector<int> tangerine) {
    int answer = 0;
    
    map<int,int> mp;
    
    for(int i = 0;i<tangerine.size();i++){
        mp[tangerine[i]]++;
    }
    
    vector<pair<int, int> > arr;
    
    for(auto iter = mp.begin(); iter != mp.end(); iter++){
        arr.push_back(make_pair(iter->second,iter->first));
    }    
    
    sort(arr.begin(),arr.end(), greater<>());
    
    int total = k;
    for(int i = 0; i<arr.size();i++){
        total -= arr[i].first;
        answer++;
        if(total <= 0){
            break;
        }
    }
    
    return answer;
}

 

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

[Swift] 짝지어 제거하기  (0) 2023.11.16
[Swift] 피보나치 수  (0) 2023.11.16
[Swift] 다음 큰 숫자  (0) 2023.11.16
[C++] 다음 큰 숫자  (0) 2023.11.14
[Swift] 로또의 최고 순위와 최저 순위  (0) 2023.09.24
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.