728x90
반응형
2022.01.23
79번째 포스팅
입사 322일차.
코테 문제풀이 11주차 1번 문제
0. 문제
① 2022 KAKAO BLIND RECRUITMENT : 신고 결과 받기
② 설명
문제설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다.
각 유저별로 신고당한 횟수는 다음과 같습니다. 위 예시에서는 2번 이상 신고당한 "frodo"와 "neo"의 게시판 이용이 정지됩니다. 이때, 각 유저별로 신고한 아이디와 정지된 아이디를 정리하면 다음과 같습니다. 따라서 "muzi"는 처리 결과 메일을 2회, "frodo"와 "apeach"는 각각 처리 결과 메일을 1회 받게 됩니다. 이용자의 ID가 담긴 문자열 배열 id_list, 각 이용자가 신고한 이용자의 ID 정보가 담긴 문자열 배열 report, 정지 기준이 되는 신고 횟수 k가 매개변수로 주어질 때, 각 유저별로 처리 결과 메일을 받은 횟수를 배열에 담아 return 하도록 solution 함수를 완성해주세요. 제한사항
|
③ 링크
1. 접근방법
생각해낸 방법은 1가지
① HashSet을 이용한 중복신고 제거
2. 풀이
① 접근방법 : ①
② 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
import java.util.*;
class Solution {
/*
* 시작시간 : 01:07
* 종료시간 : 02:28
*/
public int[] solution(String[] id_list, String[] report, int k) {
int[] answer = blindUserChck(id_list, report, k);
return answer;
}
public int[] blindUserChck(String[] id_list, String[] report, int k) {
int[] answer = new int[id_list.length];
Map<String, HashSet<String>> reportInf = new HashMap<>();
Map<String, Integer> answerMap = new HashMap<>();
for (String user : id_list) {
answerMap.put(user, 0);
reportInf.put(user, new HashSet<>());
}
for (String blind : report) {
String[] strArr = blind.split(" ");
reportInf.get(strArr[1]).add(strArr[0]);
}
for (String fromUser : reportInf.keySet()) {
HashSet<String> toUserList = reportInf.get(fromUser);
if (toUserList.size() >= k) {
for (String toUser : toUserList) {
answerMap.put(toUser, answerMap.get(toUser) + 1);
}
}
}
for (int i = 0; i < id_list.length; i++) {
answer[i] = answerMap.get(id_list[i]);
}
return answer;
}
}
|
cs |
3. 결과
4. 주의사항
① 없음
728x90
반응형
'코딩테스트' 카테고리의 다른 글
[코테/JAVA] 그래프: 가장 먼 노드 (2) | 2022.02.06 |
---|---|
[코테/JAVA] 2018 KAKAO BLIND RECRUITMENT: [1차] 비밀지도 (0) | 2022.01.24 |
[코테/JAVA] 연습문제 : 문자열 내 마음대로 정렬하기 (2) | 2022.01.03 |
[코테/JAVA] 연습문제 : 문자열 내 p와 y의 개수 (0) | 2022.01.02 |
[코테/JAVA] Summer/Winter Coding(~2018) : 영어 끝말잇기 (0) | 2021.12.05 |
댓글