간단한 문제 설명..
(출처 : https://school.programmers.co.kr/learn/courses/30/lessons/92334)
import java.util.*;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
int[] answer = {};
HashMap<String, Integer> cntMap = new HashMap<>();
HashMap<String, String> reportMap = new HashMap<>();
HashSet<String> reportSet = new HashSet<>();
for(String s : report)reportSet.add(s);
report = reportSet.toArray(new String[0]);
for(int i=0;i<report.length;i++){
String[] tmp = report[i].split(" ");
if(cntMap.containsKey(tmp[1])){ //있으면 ++
int reportCnt = cntMap.get(tmp[1]);
cntMap.put(tmp[1],reportCnt+1);
}else{ //없으면 1
cntMap.put(tmp[1], 1);
}
}
for(int i=0;i<report.length;i++){
String[] tmp = report[i].split(" ");
if(cntMap.containsKey(tmp[1]) && cntMap.get(tmp[1]) >= k){ //있는데 K 넘으면
if(reportMap.containsKey(tmp[0])){
String reportedName = reportMap.get(tmp[0]);
reportMap.put(tmp[0],reportedName+" "+tmp[1]);
}else{
reportMap.put(tmp[0],tmp[1]);
}
}
}
answer = new int[id_list.length];
for(int i=0;i< id_list.length;i++){
if(reportMap.containsKey(id_list[i])){
String nameCnt = reportMap.get(id_list[i]);
answer[i] = nameCnt.split(" ").length;
}else{
answer[i] = 0;
}
}
return answer;
}
}