💡Problem Solving/Programmers
[프로그래머스] 신고 결과 받기 (Java)
gom20
2022. 1. 20. 21:39
문제
https://programmers.co.kr/learn/courses/30/lessons/92334?language=java
코딩테스트 연습 - 신고 결과 받기
문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의
programmers.co.kr
풀이
Level1 쉬운 문제이다.
HashMap 사용하여 쉽게 풀 수 있었다.
소스코드
import java.util.*;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
int[] answer = new int[id_list.length];
HashMap<String, ArrayList<String>> reportingUsers = new HashMap<String, ArrayList<String>>();
HashMap<String, Integer> reportedCnt = new HashMap<String, Integer>();
HashMap<String, Integer> mailCnt = new HashMap<String, Integer>();
for(String name : id_list){
reportingUsers.put(name, new ArrayList<String>());
reportedCnt.put(name, 0);
mailCnt.put(name, 0);
}
for(int i = 0; i < report.length; i++){
String[] arr = report[i].split(" ");
String reportingUser = arr[0];
String reportedUser = arr[1];
if(reportingUsers.get(reportedUser).contains(reportingUser)) continue;
reportingUsers.get(reportedUser).add(reportingUser);
reportedCnt.put(reportedUser, reportedCnt.get(reportedUser) + 1);
}
for(String name : id_list){
if(reportedCnt.get(name) >= k){
for(String reportingUser : reportingUsers.get(name)){
mailCnt.put(reportingUser, mailCnt.get(reportingUser) + 1);
}
}
}
for(int i = 0; i < id_list.length; i++){
answer[i] = mailCnt.get(id_list[i]);
}
return answer;
}
}