본문으로 바로가기
 

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;
    }