📚 신고 결과 받기
[JAVA] 프로그래머스 Level 1.
코딩테스트 연습 - 신고 결과 받기 | 프로그래머스 스쿨 (programmers.co.kr)
문제
(생략)
제한사항
(생략)
입출력 예
id_list | report | k | result |
["muzi", "frodo", "apeach", "neo"] | ["muzi frodo","apeach frodo","frodo neo","muzi neo","apeach muzi"] | 2 | [2,1,1,0] |
["con", "ryan"] | ["ryan con", "ryan con", "ryan con", "ryan con"] | 3 | [0,0] |
문제 해결 방안
소스 코드
import java.util.*;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
int[] answer = new int[id_list.length];
Map<String, Set<String>> map = new HashMap<>();
Map<String, Integer> reMap = new HashMap<>();
for(int i=0; i<report.length; i++) {
String[] strs = report[i].split(" ");
Set<String> set = map.getOrDefault(strs[0], new HashSet<>());
int asize = set.size();
set.add(strs[1]);
int bsize = set.size();
map.put(strs[0], set);
if(asize!=bsize) {
reMap.put(strs[1], reMap.getOrDefault(strs[1], 0)+1);
}
}
for(int i=0; i<id_list.length; i++) {
Set<String> set = map.getOrDefault(id_list[i], new HashSet<>());
for(String s : set) {
if(reMap.getOrDefault(s, 0) >=k) {
answer[i]+=1;
}
}
}
return answer;
}
}
'프로그래머스' 카테고리의 다른 글
[프로그래머스/Java] 문자열 만들기 (0) | 2023.07.25 |
---|---|
[프로그래머스/Java] 최대값과 최솟값 (0) | 2023.07.24 |
[프로그래머스/Java] 성격 유형 검사하기 (0) | 2023.07.12 |
[프로그래머스/Java] 햄버거 만들기 (0) | 2023.07.11 |
[프로그래머스/Java] 신규 아이디 추천 (0) | 2023.07.09 |