프로그래머스/Lv.0

최빈값 구하기 - C++, unordered_map, auto

아찌방 2025. 2. 22. 11:46

 

 

주소

 

코드 & 풀이

 

#include <vector>
#include <unordered_map>

using namespace std;

int solution(vector<int> array) {
    unordered_map<int, int> freq;
    for (int num : array) freq[num]++;
    
    int max_cnt = 0, mode = -1;
    bool is_duplicate = false;
    
    for (auto &[num, count] : freq){
        if(count > max_cnt){
            max_cnt = count;
            mode = num;
            is_duplicate = false;
        } else if(count == max_cnt){
            is_duplicate = true;
        }
    }
    
    return is_duplicate ? -1 : mode;
}

 

 

unordered_map과 auto에 대해 배웠습니다.

 

unordered_map은

 

키(key)-값(value) 쌍을 저장하는 C++ STL 컨테이너로, 해시 테이블을 기반으로 동작합니다.

 

map과의 차이점 = 정렬되지 않는다.

 

탐색 속도 = O(1)

 

 

auto 키워드는

 

컴파일러가 변수의 타입을 자동으로 추론하도록 도와줍니다.

 

C++ 11부터 도입되어 반복문, 람다 함수, 템플릿 코드에서 유용합니다.

 

결국 int, double, string 을 안 쓰고

 

auto를 쓰면

 

알아서 데이터타입을 추론해주는 겁니다.

 

 

다음에 또 봐요

 

728x90