-
신고 결과 받기 C++프로그래머스(Programmers) 2022. 1. 17. 21:37반응형
#include <string> #include <vector> #include <iostream> #include <map> #include <set> using namespace std; vector<int> solution(vector<string> id_list, vector<string> report, int k) { vector<int> answer(id_list.size()); map<string, set<string>> reportMap; //key : 신고한 사람, value : key값에게 신고당한 아이들 map<string , int> reportCnt; // 신고당한 사람, 횟수 for (string s: report) { string tmp;//key와 value 들어갈 string string reporter; for(char ch : s) { if(ch == ' ') { reporter=tmp; tmp=""; continue; } tmp += ch; } if(reportMap[reporter].count(tmp)) { continue; } reportMap[reporter].insert(tmp); reportCnt[tmp]++; } set<string> nameList;//k번 이상 신고당한 이름 for(string s : id_list ) { if(reportCnt[s] >= k) { nameList.insert(s); } } for (int i = 0; i < id_list.size(); i++) { int cnt = 0; for (auto r : reportMap[id_list[i]]) { if (nameList.find(r) != nameList.end()) { cnt++; } } answer[i] = cnt; } return answer; }
=> SET과 MAP을 적절히 활용하여 풀어야 하는 문제였습니다.
=> 누가 몇번신고당했는지 select 하는 법은 알아내었지만, 해당 변수를 answer에 넣는 방법에서 헤매었습니다.
=> 해당 변수를 answer에 넣을 때의 부분은 다른 블로그를 참조하였습니다.
https://jaimemin.tistory.com/2034
위 블로그를 참조하였습니다.
=> 아래의 부분을 잘 기억해 다음 문제에서는 대입해보도록하겠습니다.
반응형'프로그래머스(Programmers)' 카테고리의 다른 글
프로그래머스 행렬 테두리 회전하기 C++ (0) 2022.01.21 예산 (0) 2022.01.21 프로그래머스 튜플 C++ (0) 2022.01.14 프로그래머스 3진법 뒤집기 C++ (0) 2022.01.13 프로그래머스 H-Index C++ (0) 2022.01.12