문제
https://programmers.co.kr/learn/courses/30/lessons/92334?language=java
풀이
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;
}
}
'💡Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스] 괄호 변환 (Python) (0) | 2022.11.17 |
---|---|
[프로그래머스] 자물쇠와 열쇠 (Python) (0) | 2022.11.16 |
[프로그래머스] 코딩테스트 고득점 Kit (Java) (0) | 2021.12.08 |
[프로그래머스] 가장 큰 수 (Java) (0) | 2021.12.08 |
[프로그래머스] 최고의 집합 (Java) (0) | 2021.12.08 |