ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 완주하지 못한 선수 unordered_map
    프로그래머스알고리즘 2021. 3. 10. 16:55

    unorderd_map의 시간복잡도는 O(1) 라이브러리 구조 hash table

    map의 시간복잡도는 O(logn) 라이브러리 구조 binary search tree

     

    따라서 unorderd_map을 사용해서 문제를 해결하는것이 더 시간복잡도를 줄일 수 있다.

     

    #include<iostream>
    #include<unordered_map>
    using namespace std;
    int main()
    {
    	unordered_map<string, int> a;
    	//cout << a["aaa"]; //key에 의한 value 접근
    	a["aaa"] = 3; //key에 값 대입
    	cout << a["aaa"];//key에 의한 value 접근
    
    	for (auto & p : a)//map a의 모든 key값들 순회
    	{
    		cout << p.first;//key값들
    		cout << p.second;//value값들
    	}
    }

     

    unorderd_map 활용

    #include<iostream>
    #include<unordered_map>
    #include<vector>
    #include<string>
    using namespace std;
    int main()
    {
    	string answer = "";
    	vector<string> participant = {"aaa","bbb","ccc"};
    	vector<string> completion = { "aaa","bbb" };
    	unordered_map<string, int> d;
    
    	for (auto& i : participant)//participant의 값들을 순회 aaa,bbb,ccc
    	{
    		d[i]++;
    	}
    	for (auto& i : completion)//completion의 값들을 순회 aaa,bbb
    	{
    		d[i]--;
    	}
    	for (auto& i : d)
    	{
    		if (i.second > 0) {
    			answer = i.first;
    			break;
    		}
    	}
    	cout << answer;
    	
    }

     

    sort 활용

    #include<iostream>
    #include<vector>
    #include<string>
    #include<algorithm>
    
    using namespace std;
    
    string solution(vector<string> participant, vector<string> completion) {
      
        
         sort(participant.begin(), participant.end());
    	sort(completion.begin(), completion.end());
    
    	for (int i = 0; i < participant.size(); i++)
    	{
    		if (participant[i] != completion[i])
    		{
    			return participant[i];
    		}
    	}
    }

     

    sort와 같은경우 시간복잡도가  O(nlogn) 따라서 unorded_map보다 시간이 느림

    따라서 map활용하는것이 동작속도가 훨씬빠르다.

    '프로그래머스알고리즘' 카테고리의 다른 글

    가장 큰수(정렬)  (0) 2021.03.10
    체육복 그리디  (0) 2021.03.10
    위장  (0) 2020.10.01
    완주하지 못한 선수 hash map 사용  (0) 2020.10.01
    완주하지 못한 선수  (0) 2020.10.01
Designed by Tistory.