티스토리 뷰

 

 

코딩테스트 연습 - 신고 결과 받기

문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의

programmers.co.kr

Set과 Map을 사용하여 풀이하였다.

  • 유저의 신고받은 횟수를 가지는 reportCountMap
    • Map<String, Integer>
  • 유저가 신고한 유저들을 가지는 reportMap
    • Map<String, Set<String>>

중복 신고가 가능하며, 횟수가 한 번만 인정되므로 Set을 사용하였다.

import java.util.*;

class Solution {
    private final String SEPARATE = " ";

    public int[] solution(String[] id_list, String[] report, int k) {
        int[] answer = new int[id_list.length];
        Map<String, Integer> reportCountMap = new HashMap<>();
        Map<String, Set<String>> reportMap = new HashMap<>();
        for (String id : id_list) {
            reportCountMap.put(id, 0);
            reportMap.put(id, new HashSet<>());
        }
        for (String reportInfo : report) {
            String personReporting = reportInfo.split(SEPARATE)[0];
            String personReported = reportInfo.split(SEPARATE)[1];
            if(reportMap.get(personReporting).add(personReported)) {
                reportCountMap.put(personReported, reportCountMap.get(personReported) + 1);
            }
        }

        for(int i = 0 ;i<id_list.length;i++) {
            String id = id_list[i];
            Set<String> reportingList = reportMap.get(id);
            for(String personReported : reportingList) {
                if(reportCountMap.get(personReported) >= k) {
                    answer[i]++;
                }
            }
        }
        return answer;
    }
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함