문제 : https://programmers.co.kr/learn/courses/30/lessons/92334?language=cpp
코딩테스트 연습 - 신고 결과 받기
문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의
programmers.co.kr
갑자기 푼 카카오 블라인드 2022 문제
이런 류의 문제는 너무 오랜만에 풀어서 map이랑 sstream 쓰는 거에서 시간을 많이 잡아먹었당
그래도 첫 트라이에 성공떠서 기분 쥬아~~~~
#include <string>
#include <vector>
#include <map>
#include <iostream>
#include <sstream>
#include <algorithm>
using namespace std;
vector<int> solution(vector<string> id_list, vector<string> report, int k) {
vector<int> answer;
map<string,int> reported; // 유저별 신고당한 횟수
map<string,int> success; // 유저별 신고성공한 횟수
vector<vector<string>> report_list; //신고자, 신고당한사람 으로 이루어진 2차원 벡터
for(int i=0; i<id_list.size(); i++)
{
answer.push_back(0);
reported.insert(pair<string,int>(id_list[i],0));
success.insert(pair<string,int>(id_list[i],0));
}
sort(report.begin(), report.end());
report.erase(unique(report.begin(), report.end()), report.end());
for(int i=0; i<report.size(); i++)
{
vector<string> people; //idx 0이 신고자, 1이 신고당한사람
istringstream ss(report[i]);
string str;
while(ss>>str)
{
people.push_back(str);
}
reported[people[1]] += 1;
report_list.push_back(people);
}
for(int i=0; i<report_list.size(); i++)
{
if(reported[report_list[i][1]] >= k)
{
success[report_list[i][0]] += 1;
}
}
for(int i=0; i<id_list.size(); i++)
{
answer[i] = success[id_list[i]];
}
return answer;
}
'알고리즘 > 카카오 기출' 카테고리의 다른 글
[프로그래머스/C++] 문자열 압축 - 2020 KAKAO BLIND RECRUITMENT (0) | 2022.02.19 |
---|---|
[프로그래머스/C++] 크레인 인형뽑기 게임 - 2019 카카오 개발자 겨울 인턴십 (0) | 2022.02.18 |
[프로그래머스/C++] 숫자 문자열과 영단어 - 2021 카카오 채용연계형 인턴십 (0) | 2022.02.17 |
[프로그래머스/C++] 신규 아이디 추천 - 2021 KAKAO BLIND RECRUITMENT (0) | 2022.02.17 |
[프로그래머스/C++] [1차] 다트 게임 - 2018 KAKAO BLIND RECRUITMENT (0) | 2022.02.11 |