티스토리 뷰

나의 저세상 문제 풀이

 

다른 분들은 HashMap도 사용하고 Stream도 멋지게 사용하시는데. . 이중 반복문만 오조오억번 사용해버림.. (반성)

import java.util.Set;
import java.util.HashSet;
import java.util.Iterator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
class Solution {
    public int[] solution(String[] id_list, String[] report, int k) {
        // 본인이 신고한 사람 중 정지당한 사람의 수 
        int result[] = new int[id_list.length]; 
		
        // 정지된 회원 목록
        List<String> stopIdList = new ArrayList<String>();

        // 신고 당한 횟수
        int answer[] = new int[id_list.length];

        // 중복 신고 제거
        Set<String> removeDupli = new HashSet<>(Arrays.asList(report));
        Iterator<String> iter = removeDupli.iterator();

        // 1. 각 ID별 신고 당한 횟수 카운트
        while(iter.hasNext()) {
            String arr[] = iter.next().split(" ");
            for(int i=0; i<id_list.length; i++) {
                if(id_list[i].equals(arr[1])) {
                    answer[i]++;
                    break;
                }
            }
        }

        // 2. 정지당한 id 따로 저장
        for(int i=0; i<id_list.length; i++) {
            if(answer[i] >= k) {
                stopIdList.add(id_list[i]);
            }
        }

        // 3. 각 회원별 신고멤버 정지현황 저장
        Set<String> removeDupli2 = new HashSet<>(Arrays.asList(report));
        Iterator<String> iter2 = removeDupli2.iterator();

        while(iter2.hasNext()) {
            String[] what = iter2.next().split(" ");
            for(int i=0; i<id_list.length; i++) {
                if(what[0].equals(id_list[i]) && stopIdList.contains(what[1])) {
                    result[i]++;
                    break;
                }
            }
        }

        return result;
    }
}

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함