YeJin's Footsteps

신고 결과 받기 본문

Computer Science & Engineering/알고리즘

신고 결과 받기

YeJinii 2022. 2. 1. 22:02

1. 문제 링크

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

 

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

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

programmers.co.kr


2. 문제 풀이


3. 풀이 코드

#include <string>
#include <vector>
#include <string>
#include <map>
#include <set>

using namespace std;

map<string, int> rCnt;
map<string, set<string>> rList;

vector<int> solution(vector<string> id_list, vector<string> report, int k) {
    
    vector<int> answer;
    
    for(string s: report){
        int blank=s.find(' ');
        string from = s.substr(0, blank);
        string to = s.substr(blank);
        
        if(rList[from].find(to)==rList[from].end()){//신고 한 적이 없다면
    
            rCnt[to]++; //신고당한 횟수를 count
            rList[from].insert(to); //from이 신고한 사람을 리스트에 추가
            
        }
    
    }
    
    for(string s: id_list){
        int ret=0;
        for(string s1:rList[s]){
            if(rCnt[s1]>=k) ret++;
        }
        answer.push_back(ret);
    }
       
    return answer;
}
Comments