java
- HashMap과 HashSet을 사용하여 HashMap<String,HashSet<>)을 하여 id와 신고한 이름을 중복없이 set에 저장한다.
- 이후 이름별로 신고된 횟수가 k번 이상이면 answer값을 증가시킨다.
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
int[] answer = new int[id_list.length];
HashMap<String, HashSet<String>> reporterInfoMap = new HashMap<>();
HashMap<String, Integer> reporteIdx = new HashMap<>();
//초기화
for(int i =0; i < id_list.length; i++){
reporterInfoMap.put(id_list[i], new HashSet<>());
reporteIdx.put(id_list[i], i);
}
//신고한 ID 신고된 ID(set)으로 저장
for(String s: report){
String[] str = s.split(" ");
String from = str[0];
String to = str[1];
reporterInfoMap.get(to).add(from);
}
for(int i =0; i<id_list.length; i++){
HashSet<String> send = reporterInfoMap.get(id_list[i]);
if(send.size() >= k){
for(String name : send){
answer[reporteIdx.get(name)]++;
}
}
}
return answer;
}
}