반응형
1.문제설명
신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다.
- 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다.
- 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다.
- 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다.
- k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다.
- 유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송합니다.
입출력 예
["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] |
2.코드
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Map;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
HashMap<String, Integer> count = new LinkedHashMap<>();
HashMap<String, HashSet<String>> last = new HashMap<>();
int[] answer = new int[id_list.length];
for(int i = 0; i<id_list.length ;i++){
count.put(id_list[i],i);
last.put(id_list[i],new HashSet<>());
}
for (String b: report){
String[] str = b.split(" ");
last.get(str[1]).add(str[0]);
}
for(int i = 0; i<id_list.length ; i++){
HashSet<String> mail = last.get(id_list[i]);
if(mail.size()>= k){
for(String name : mail){
answer[count.get(name)]++;
}
}
}
return answer;
}
}
반응형
'IT 공부 > JAVA' 카테고리의 다른 글
[코딩테스트] Lv1.최소직사각형 (0) | 2022.09.05 |
---|---|
[코딩테스트] Lv1.같은 숫자는 싫어 (0) | 2022.09.05 |
[API]equals() (0) | 2021.01.15 |
[예외]Try-catch-finally (0) | 2021.01.12 |
[예외]NumberFormatException (0) | 2021.01.12 |
댓글