프로그래머스/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