본문 바로가기
정리/알고리즘

해시 - 신고결과받기

by Hudini30 2022. 3. 21.

프로그래머스 (카카오) - 신고 결과 받기

해당 문제는 '신고 받은자'라는 키를 기준으로 신고한 사람들의 집합을 저장 한 후, 각 id_list 별 신고 받은자에 맞는 결과(신고한 사람의 수가 k번 이상)에 id_list의 값들이 있다면 해당 카운트를 증가시키는 방식으로 문제를 해결했습니다.

 public int[] solution(String[] id_list, String[] report, int k) {
        int[] answer = new int[id_list.length];
        Map<String, Set<String>> reportMap = new HashMap<>();
        for (String list : report) {
            String[] info = list.split(" ");
            Set<String> reportSet = reportMap.getOrDefault(info[1], new HashSet<>());
            reportSet.add(info[0]);
            reportMap.put(info[1], reportSet);
        }

        for (int i = 0; i < id_list.length; i++) {
            for (Set<String> value : reportMap.values()) {
                if(value.size() >= k && value.contains(id_list[i])) {
                    answer[i]++;
                }
            }
        }

        return answer;
    }

'정리 > 알고리즘' 카테고리의 다른 글

프로그래머스 - 신규 아이디 추천  (0) 2022.03.23
해시 - 로또의 최고 순위와 최저 순위  (0) 2022.03.22
DFS - 단어변환  (0) 2022.03.18
그래프 - 가장 먼 노드  (0) 2022.03.17
이분탐색 - 징검다리  (0) 2022.03.16

댓글