본문 바로가기
전공공부/코딩테스트

(c++) 프로그래머스 신고 결과 받기

by 시아나 2022. 1. 14.

https://programmers.co.kr/learn/courses/30/lessons/92334

 

코딩테스트 연습 - 신고 결과 받기

문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의

programmers.co.kr


나의 풀이

 

#include <string>
#include <vector>
#include <unordered_map>
#include <unordered_set>
#include <sstream>

using namespace std;

vector<int> solution(vector<string> id_list, vector<string> report, int k) {
    vector<int> answer;
    unordered_map<string, int> reported_num;
    unordered_map<string, unordered_set<string>> report_list;
    for (string str : report) {
        stringstream ss(str);
        string first,second;
        ss.str(str);
        ss >> first;
        ss >> second;
        if (report_list[first].find(second) == report_list[first].end()) {
            reported_num[second]++;
            report_list[first].insert(second);
        }
    }
    for (string name : id_list) {
        int count = 0;
        for (string reportName : report_list[name]) {
            if (reported_num[reportName] >= k) count++;
        }
        answer.push_back(count);
    }

    return answer;
}