[프로그래머스/자바] 신고 결과 받기

Wuchang·2023년 3월 17일

코딩테스트

목록 보기
8/13

문제설명

제한사항

입출력 예

코드풀이

import java.util.ArrayList;
import java.util.HashMap;

class Solution {
    public int[] solution(String[] id_list, String[] report, int k) {
        int[] answer = new int[id_list.length];
        HashMap<String, ArrayList<String>> call = new HashMap<>();
        HashMap<String, ArrayList<String>> ban = new HashMap<>();

        for (int i = 0; i < report.length; i++) {
            String[] split = report[i].split(" ");
            if (!call.containsKey(split[0])) {
                ArrayList<String> clist = new ArrayList<>();
                clist.add(split[1]);
                call.put(split[0], clist);
            } else {
                if (!call.get(split[0]).contains(split[1])) {
                    call.get(split[0]).add(split[1]);
                }
            }

            if (!ban.containsKey(split[1])) {
                ArrayList<String> blist = new ArrayList<>();
                blist.add(split[0]);
                ban.put(split[1], blist);
            } else {
                if (!ban.get(split[1]).contains(split[0])) {
                    ban.get(split[1]).add(split[0]);
                }
            }
        }

        ArrayList<String> BAN = new ArrayList<>();
        for (String s : ban.keySet()) {
            if (ban.get(s).size() >= k) {
                BAN.add(s);
            }
        }

        for (int j = 0; j < id_list.length; j++) {
            if (!call.containsKey(id_list[j])) {
                answer[j] = 0;
            } else {
                for (int l = 0; l < BAN.size(); l++) {
                    if (call.get(id_list[j]).contains(BAN.get(l))) {
                        answer[j]++;
                    }
                }
            }
        }
        
        return answer;
    }
}
profile
우창의 개발일지🐈

0개의 댓글