-
[Algorithm] 프로그래머스 신고 결과 받기 - C++, unordered_map, set쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 5. 12. 20:27반응형
#include <string> #include <sstream> #include <vector> #include <unordered_map> #include <set> using namespace std; vector<int> solution(vector<string> id_list, vector<string> report, int k) { vector<int> answer; answer.resize(id_list.size(), 0); unordered_map<string, int> userIndex; unordered_map<string, set<string>> reportList; for(int i = 0; i < id_list.size(); i++) userIndex[id_list[i]] = i; for(auto reportInfo : report){ stringstream ss(reportInfo); string id, target; ss >> id >> target; reportList[target].insert(id); } for(auto reportResult : reportList){ if(reportResult.second.size() < k) continue; for(auto receiveUser : reportResult.second){ answer[userIndex[receiveUser]]++; } } return answer; }
이번 문제는 unordered_map과 set을 사용해서 풀이해야 합니다. 일단 하나는 유저의 인덱스를 알아내는 map, 다른 하나는 set을 가지고 report 를 누구한테 받았는지 저장할 map 입니다.
set을 가진 map을 만든 이유는 set은 중복을 허용하지 않는다는 점을 이용해서 중복 신고를 편하게 처리하기 위함입니다.
반응형'쾌락없는 책임 (공부) > 알고리즘 문제풀이' 카테고리의 다른 글
[Algorithm] 백준 1600 말이 되고픈 원숭이 - C++, BFS (0) 2022.05.16 [Algorithm] 프로그래머스 베스트 앨범 - C++, map, unordered_map (0) 2022.05.13 [Algorithm] 프로그래머스 위장 - C++, unordered_map (0) 2022.05.11 [Algorithm] 프로그래머스 전화번호 목록 - C++, unordered_map (0) 2022.05.11 [Alogorithm] 백준 20366 같이 눈사람 만들래? - C++ (0) 2022.05.10