반응형
문제 : https://programmers.co.kr/learn/courses/30/lessons/92334?language=java
해설 : 우선 중복된 신고는 없다 라는것에 Set을 생각해서 넣어두고 사용했다
혹자는 stream에 distinct를 사용해서 중복을 제거햇던데... ㄷㄷ.. 열심히 배워보자..
1). 나를 신고한 사람을 Set에 담아두고 나를 신고한 사람이 k명 이상일때 신고한 사람에게 메세지를 보내는것으로 작성하였다.
풀이 :
import java.util.*;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
int[] answer = new int[id_list.length];
HashMap<String, HashSet<String>> idMap = new HashMap<>();
HashMap<String,Integer> idxMap = new HashMap<>();
for(int i=0; i<id_list.length; i++){
idMap.put(id_list[i],new HashSet<>());
idxMap.put(id_list[i],i);
}
for(String reportDetail : report){
String from = reportDetail.split(" ")[0];
String to = reportDetail.split(" ")[1];
idMap.get(to).add(from);
}
for(int i=0; i<id_list.length; i++){
HashSet<String> set = idMap.get(id_list[i]);
if(set.size() >= k){
for(String id : set){
answer[idxMap.get(id)]++;
}
}
}
return answer;
}
}
반응형
'Java > Algorithm' 카테고리의 다른 글
[Algorithm] 프로그래머스 신규 아이디 추천 Java 풀이 (0) | 2022.07.10 |
---|---|
[Algorithm] Programmers 로또의 최고순위와 최저순위 풀이 (0) | 2022.07.07 |
[Java-Algorithm] 백준 15652 N과 M(4) 풀이 (0) | 2021.08.04 |
[Java-Algorithm] 백준 15651 N과 M (3) 풀이 (0) | 2021.08.04 |
[Java-Algorithm] 백준 15650 N과 M (2) 풀이 (0) | 2021.08.04 |