관리 메뉴

有希

HackerRank/Lonely Integer 본문

프로그래밍/알고리즘+코딩테스트

HackerRank/Lonely Integer

有希. 2022. 3. 29. 22:01

맨날 본 문제인듯?

set으로 해볼까 하다가 이러면 숫자를 집어넣을때마다 있으면 빼고 없으면 insert 하고(탐색 비용 소모)를 반복하고 다 돌고나서 set에 마지막 하나 남은 녀석이 홀수개(1개) 있는 녀석이므로 return 하면 되는데, 이러면 n * log n 이다.

map으로 하면 2n 돌리면 끝이니까 차라리 하던대로 map으로 했다.

int lonelyinteger(vector<int> a) {
    map<int, int> nums;
    
    int ret = 0;
    
    for(int i=0; i<a.size(); ++i)
    {
        nums[a[i]]++;
    }
    
    for(auto i : nums)
    {
        if(i.second == 1) ret = i.first;
    }
    
    return ret;
}