-
완주하지 못한 선수 hash map 사용프로그래머스알고리즘 2020. 10. 1. 16:33
#include <string> #include <vector> #include<iostream> #include<unordered_map> using namespace std; string solution(vector<string> participant, vector<string> completion) { unordered_map<string, int> strMap; for (auto elem : participant) { strMap[elem]++; } for (auto elem : completion) { strMap[elem]--; } for (auto p : strMap) { if (p.second > 0) { return p.first; } } }
순차적으로 participant의 데이터를 map에 적재합니다.
participant의 값이 "a" , "b" , "c" 일 경우
a 1
b 1
c 1
이렇게 map의 key 와 value 을 활용하여 해시테이블을 만듭니다.
다음으로
completion의 값이 "a" , "b" 일 경우
a 0
b 0
c 1
이렇게 각각의 value값을 1씩 감소시켜줍니다.
이런 방법으로 해시테이블 데이터를 처리하면
결국 value값이 1인 값만 반환해주면 문제가 해결됩니다.
test code
#include <string> #include<iostream> #include<unordered_map> using namespace std; int main() { vector<string> participant = { "b","c","a" }; vector<string> completion = { "b","c"}; unordered_map<string, int> strMap; for (auto elem : participant) { strMap[elem]++; } //map 출력 /* for (auto p : strMap) { cout << p.first << " " << p.second << endl; } */ for (auto elem : completion) { strMap[elem]--; } //map 출력 /* for (auto p : strMap) { cout << p.first << " " << p.second << endl; } */ for (auto p : strMap) { if (p.second > 0) { cout << p.first; } } }
'프로그래머스알고리즘' 카테고리의 다른 글
완주하지 못한 선수 unordered_map (0) 2021.03.10 위장 (0) 2020.10.01 완주하지 못한 선수 (0) 2020.10.01 콜라츠 추측 (0) 2020.10.01 수박문제 (0) 2020.10.01