반응형
728x170
우선 map을 자유자재로 사용한다면 쉽겠다.
unordered_map인데도.. 순서가 바뀌어서 깜짝 놀랐다.
https://programmers.co.kr/learn/courses/30/lessons/92334
#맞는 풀이
#include <bits/stdc++.h>
using namespace std;
vector<int> solution(vector<string> id_list, vector<string> report, int k) {
vector<int> answer(id_list.size());
int idx = 0;
//유저 ID, Index
unordered_map<string, int> users;
//유저 ID, 신고받은 횟수
unordered_map<string, int> result;
for(auto x : id_list){
result[x]; //0으로 초기화
users[x] = idx++;
}
//유저 ID, 신고한 ID(여러번 신고한 것은 1번)
unordered_map<string, set<string>> history;
//id_list 순서대로 넣음 => 다 가지고는 있어야함(신고를 안했더라도)
for(auto x : id_list){
history[x];
}
for(auto y : report){
stringstream ss(y);
string id;
string target;
getline(ss, id, ' ');
getline(ss, target, ' ');
history[id].insert(target);
}
//신고 받은 횟수 기록
for(auto z : history){
cout << z.first << '\n';
for(auto id : z.second){
result[id]++;
}
}
for(auto a : history){
int ans = 0;
for(auto b : a.second){
if(result[b] >= k){
ans++;
}
}
answer[users[a.first]] = ans;
}
return answer;
}
그냥 풀었다.
생각없이 이렇게 체크하면 되겠네 하고 풀었다.
주의할점은 결과도 id_list 순서에 맞춰서 나와야하기 때문에
결과를 순서대로 맞추기 위해 index를 설정해야 하는 것이다.
728x90
반응형
그리드형
'문제풀이(Problem Solving)' 카테고리의 다른 글
프로그래머스 카카오, 메뉴 리뉴얼 C++ [CPP] ★★★★★ (0) | 2022.05.08 |
---|---|
프로그래머스 카카오, 신규 아이디 추천 C++ [CPP] ★★★★ (0) | 2022.05.08 |
프로그래머스 카카오, k진수에서 소수 개수 구하기 C++ [CPP] ★★★★★(문자열처리) (0) | 2022.05.05 |
백준, BOJ, 16571번, 알파 틱택토 C++ [CPP] ★★★ (0) | 2022.05.03 |
백준, BOJ, 12100번, 2048 C++ [CPP] ★★★★ (0) | 2022.05.01 |