https://school.programmers.co.kr/learn/courses/30/lessons/92334
신고자가 동일한 사람을 중복 신고하는 것을 방지하기 위해 HashSet을 사용함(시간초과 방지)
HashMap을 사용할 때 value 값에 Set, List, 배열 등이 사용가능함
프로그래머스를 사용할 때는 import java.util.* 을 추가하는 것이 편함
import java.util.*;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
StringTokenizer st;
HashMap<String,Integer> id = new HashMap<>();
HashMap<String,HashSet<String>> reportMeMap = new HashMap<>();
for(int i=0; i<id_list.length; i++){
reportMeMap.put(id_list[i],new HashSet<>());
id.put(id_list[i],i);
}
for(int i=0; i<report.length; i++){
st = new StringTokenizer(report[i]," ");
String reporting = st.nextToken();
String reported = st.nextToken();
reportMeMap.get(reported).add(reporting);
}
int[] answer = new int[id_list.length];
for(int i=0; i<answer.length; i++){
if(reportMeMap.get(id_list[i]).size()>=k){
for(String value : reportMeMap.get(id_list[i]))
answer[id.get(value)]++;
}
}
return answer;
}
}
백준이랑 프로그래머스를 같이 병행해서 풀려고한다.
자료구조 다시 공부하면서 조만간 파이썬으로 갈아탈 예정이다.
갈 길이 너무 멀다😭