코딩테스트 연습(with java)/프로그래머스

프로그래머스<신고하기>-2차 수정

IT_LEE 2022. 8. 10. 19:35

변수 위치 조절하면 성공할 수 있을 것 같다.

아직 수정이 많이 필요한 더티코드 단계 

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

class Solution {
    public int[] solution(String[] id_list, String[] report, int k) {
        ArrayList<Integer> answser5 = new ArrayList<Integer>();
        String[] foranswer;
        for(int i=0;i<report.length; i++){
            foranswer = report[i].split(" ");
        }
    
        ArrayList<String> call = new ArrayList<String>();
        ArrayList<String> criminal = new ArrayList<String>();
        
        for(int j=0; j<foranswer.length; j++){
            if(j%2==0){
                call.add(foranswer[j]);
            }
            else{
                criminal.add(foranswer[j]);
            }
        }
        
        //call  = [ muzi, apeach, frodo, muzi, apeach]
        //criminal = [frodo, forodo, neo, neo, muzi];
        ArrayList<Integer> answer2 = new ArrayList<Integer>();
        ArrayList<Integer> use = new ArrayList<Integer>();
        ArrayList<String> al = new ArrayList<String>();
        for(int p=0; p<id_list.length; p++){
            if(call.contains(id_list[p])==true){
                int idx = call.indexOf(id_list[p]);
                al.add(criminal.get(idx));
                answer2.add(al.size());
            }
        }
    
        for(int j=0; j<al.size(); j++){   
            int count = 0;    
            int a = Collections.frequency(al, al.get(j));    
            if(a>=k){
                count++;    
            }   
            answer5.add(count);
        }
        int[] answer = new int[answer5.size()];
        for(int m=0; m<answer5.size(); m++){
            answer[m] = answer5.get(m);
        }
        return answer;
    }
}