728x90
https://school.programmers.co.kr/learn/courses/30/lessons/92334
풀이
- 신고 한 목록, 신고 당한 목록 정리
- 신고 한 목에서 신고 당한 사람 조회
- 신고 당한 사람의 사람의 사이즈 k와 비교
코드
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
int[] answer = new int[id_list.length];
// 신고 한 목록
Map<String, Set<String>> idMap = new HashMap<>();
// 신고 당한 목록
Map<String, Set<String>> reportedMap = new HashMap<>();
for (String id : id_list) {
idMap.put(id, new HashSet<>());
reportedMap.put(id, new HashSet<>());
}
for (String str : report) {
String id = str.split(" ")[0];
String reported = str.split(" ")[1];
// id = 신고자 , reported = 신고 당한 자
idMap.get(id).add(reported);
reportedMap.get(reported).add(id);
}
for (int i = 0; i < idMap.size(); i++) {
// 신고 한 사람의 목록 사이즈
int size = idMap.get(id_list[i]).size();
// 신고 한 사람의 목록
for (String declaration : idMap.get(id_list[i])) {
// 신고 당한 사람의 사람의 사이즈 k와 비교
if (reportedMap.get(declaration).size() < k) {
size--;
}
}
answer[i] = size;
}
return answer;
}
}
728x90
'알고리즘 풀이' 카테고리의 다른 글
[프로그래머스] 괄호 회전하기 자바(Java) (0) | 2023.04.01 |
---|---|
[프로그래머스] 둘만의 암호 자바(Java) (0) | 2023.03.31 |
[프로그래머스] 개인정보 수집 유효기간 자바(Java) (0) | 2023.03.29 |
[프로그래머스] 신규 아이디 추천 자바(Java) (0) | 2023.03.28 |
[프로그래머스] 공원 산책 자바(Java) (0) | 2023.03.28 |
댓글