프로그래머스 (카카오) - 신고 결과 받기
해당 문제는 '신고 받은자'라는 키를 기준으로 신고한 사람들의 집합을 저장 한 후, 각 id_list 별 신고 받은자에 맞는 결과(신고한 사람의 수가 k번 이상)에 id_list의 값들이 있다면 해당 카운트를 증가시키는 방식으로 문제를 해결했습니다.
public int[] solution(String[] id_list, String[] report, int k) {
int[] answer = new int[id_list.length];
Map<String, Set<String>> reportMap = new HashMap<>();
for (String list : report) {
String[] info = list.split(" ");
Set<String> reportSet = reportMap.getOrDefault(info[1], new HashSet<>());
reportSet.add(info[0]);
reportMap.put(info[1], reportSet);
}
for (int i = 0; i < id_list.length; i++) {
for (Set<String> value : reportMap.values()) {
if(value.size() >= k && value.contains(id_list[i])) {
answer[i]++;
}
}
}
return answer;
}
'정리 > 알고리즘' 카테고리의 다른 글
프로그래머스 - 신규 아이디 추천 (0) | 2022.03.23 |
---|---|
해시 - 로또의 최고 순위와 최저 순위 (0) | 2022.03.22 |
DFS - 단어변환 (0) | 2022.03.18 |
그래프 - 가장 먼 노드 (0) | 2022.03.17 |
이분탐색 - 징검다리 (0) | 2022.03.16 |
댓글