신고결과 받기

suhan cho·2022년 6월 27일
0

java

  1. HashMap과 HashSet을 사용하여 HashMap<String,HashSet<>)을 하여 id와 신고한 이름을 중복없이 set에 저장한다.
  2. 이후 이름별로 신고된 횟수가 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;
    }
}
profile
안녕하세요

0개의 댓글