🔗 신고 결과 받기
import java.util.*; class Solution { public int[] solution(String[] id_list, String[] report, int k) { // 한 번에 한 번 신고, 신고 횟수는 무제한 // 한 유저에 여러 번 신고 해도 신고 횟수는 1회로 처리 // k번 이상 신고된 유저는 이용 정지 -> 신고한 유젛에게 정지 사실을 알림 // id_ list : 이용자의 ID // report : 각 이용자가 신고한 이용자의 ID정보 ("신고자 신고당한이용자") // k : 정지 기준 List<Integer> result=new ArrayList<>(); // 신고자 id , 신고한 사람 list Map<String,List<String>> reporter= new HashMap<>(); // 신고당한 사람 id , 신고당한 횟수 Map<String, Integer> reported= new HashMap<>(); for(int i=0;i<report.length;i++){ String[] r=report[i].split(" "); // 신고자 map의 value 값 초기화 if(!reporter.containsKey(r[0])){ reporter.put(r[0],new ArrayList<>()); } // 아직 신고 안 했다면 if(!reporter.get(r[0]).contains(r[1])){ // 신고하고 reporter.get(r[0]).add(r[1]); // 횟수 업데이트 reported.put(r[1],reported.getOrDefault(r[1],0)+1); } } for(String id : id_list){ int cnt=0; if(!reporter.containsKey(id)){ result.add(0); continue; } // 해당 사용자가 신고한 신고자 list List<String> reportedUsers=reporter.get(id); for(String reportedUser:reportedUsers){ // k 번 이상 신고 당했다면 if(reported.get(reportedUser)>=k){ cnt++; } } result.add(cnt); } return result.stream().mapToInt(Integer:: intValue).toArray(); } }
'코딩테스트 > 문제풀이' 카테고리의 다른 글
[ LeetCode ] #785 : Is Graph Bipartite? - JAVA (0) | 2025.05.03 |
---|---|
[ 프로그래머스 ] #72411 : 메뉴 리뉴얼 - JAVA (0) | 2025.05.02 |
[ 프로그래머스 ] #42579 : 베스트앨범 - JAVA (0) | 2025.04.29 |
[ 프로그래머스 ] #42888 : 오픈채팅방 - JAVA (1) | 2025.04.28 |
[ 프로그래머스 ] #43162 : 네트워크 - JAVA (0) | 2025.04.25 |