[프로그래머스] 신고 결과 받기 java

Elmo·2022년 8월 18일
0
post-custom-banner

🔔신고 결과 받기

😊문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/92334

신고자가 동일한 사람을 중복 신고하는 것을 방지하기 위해 HashSet을 사용함(시간초과 방지)

HashMap을 사용할 때 value 값에 Set, List, 배열 등이 사용가능함

프로그래머스를 사용할 때는 import java.util.* 을 추가하는 것이 편함

🔑 java 풀이

import java.util.*;

class Solution {
    
    public int[] solution(String[] id_list, String[] report, int k) {
        StringTokenizer st;
        HashMap<String,Integer> id = new HashMap<>();
        HashMap<String,HashSet<String>> reportMeMap = new HashMap<>();
        
        for(int i=0; i<id_list.length; i++){
            reportMeMap.put(id_list[i],new HashSet<>());
            id.put(id_list[i],i);
        }        
        for(int i=0; i<report.length; i++){
            st = new StringTokenizer(report[i]," ");
            String reporting = st.nextToken();
            String reported = st.nextToken();
            reportMeMap.get(reported).add(reporting);
        }
        
        int[] answer = new int[id_list.length];
        for(int i=0; i<answer.length; i++){
          if(reportMeMap.get(id_list[i]).size()>=k){
              for(String value : reportMeMap.get(id_list[i]))
                  answer[id.get(value)]++;
          }
        }
        return answer;
    }
}

백준이랑 프로그래머스를 같이 병행해서 풀려고한다.
자료구조 다시 공부하면서 조만간 파이썬으로 갈아탈 예정이다.
갈 길이 너무 멀다😭

profile
엘모는 즐거워
post-custom-banner

0개의 댓글