알고리즘/프로그래머스
프로그래머스 신고결과받기 (JAVA)
왕구스
2022. 1. 24. 22:32
2022 KAKAO BLIND RECRUITMENT > 신고결과받기
https://programmers.co.kr/learn/courses/30/lessons/92334
코딩테스트 연습 - 신고 결과 받기
문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의
programmers.co.kr
https://tech.kakao.com/2022/01/14/2022-kakao-recruitment-round-1/
2022 카카오 신입공채 1차 온라인 코딩테스트 for Tech developers 문제해설
지난 2021년 9월 11일 토요일 오후 2시부터 7시까지 5시간 동안 2022 KAKAO BLIND RECRUITMENT 1차 코딩 테스트가 진행되었습니다. 테스트에는 총 7개의 문제가 출제되었으며, 개발 언어는 C++, Java, JavaScript, K
tech.kakao.com
문제에 대한 해설은 카카오 신입공채 테크블로그의 해설이 워낙 잘 설명되어 있으므로, 이 글로 대체하겠습니다.
public static int[] solution(String[] id_list, String[] report, int k) {
Map<String, Set<String>> bans = new HashMap<>();
Map<String, Integer> idNums = new HashMap<>();
int idx = 0;
for (String id : id_list) {
idNums.put(id, idx++);
}
StringTokenizer st;
for (String s : report) {
st = new StringTokenizer(s);
String from = st.nextToken();
String to = st.nextToken();
bans.computeIfAbsent(to, (e) -> new HashSet<>());
bans.get(to).add(from);
}
int[] answer = new int[id_list.length];
for (String name : bans.keySet()) {
if (bans.get(name).size() >= k) {
for (String s : bans.get(name)) {
answer[idNums.get(s)]++;
}
}
}
return answer;
}