MATCHORDER 문제 (JAVA) RTE가 나는데 원인을 모르겠어요...

  • syppy1117
    syppy1117

    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Scanner;

    public class Main {

    public static void main(String[] args) throws NumberFormatException, IOException {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        int C = sc.nextInt();
        ArrayList<Integer> ru;
        ArrayList<Integer> ko;
        ArrayList<Integer> result;
        int curRu, win;
        int N;
        for(int i=0;i<C;i++)
        {
            N = sc.nextInt();
            ru= new ArrayList<Integer>();
            ko= new ArrayList<Integer>();
            result= new ArrayList<Integer>();
            win = 0;
            for(int j=0; j<N ; j++)
            {
                ru.add(sc.nextInt());
            }
    
            for(int j=0; j<N ; j++)
            {
                ko.add(sc.nextInt());
            }
            Collections.sort(ko);
            Collections.reverse(ko);
            Collections.sort(ru);
            Collections.reverse(ru);
    
            for(int j=0; j<N ; j++)
            {
                curRu = ru.get(j);
                //동일값이 있을경우.
                if(ko.contains(curRu))
                {
                    result.add(ko.remove(ko.indexOf(curRu)));
                    win++;
                }else if(curRu>ko.get(0))//아예 작으면 제일 작은숫자를 내놔
                {   
                    result.add(ko.remove(ko.size()-1));
                }else
                {
                    for(int k=0;k<ko.size();k++)
                    {
                        if(curRu<ko.get(ko.size()-1-k))
                        {
                            result.add(ko.remove(ko.size()-1-k));
                            win++;
                        }
                    }
                }
            }

    // System.out.println(ru.toString());
    // System.out.println(result.toString());
    System.out.println(win);
    }
    }
    }


    8년 전
2개의 댓글이 있습니다.
  • seico75
    seico75

    1
    3
    1 2 3
    6 7 8

    위 케이스는 어떨까요? ko 가 압도적으로 우세할 경우..
    마지막 k 루프 돌면서 ko는 비게 되고 다음 j 루프에서 ko.get(0)는 오류를 발생시킬 것으로 보이네요.


    8년 전 link
  • syppy1117
    syppy1117

    정말 감사합니다ㅠ
    덕분에 문제를 해결했어요!!


    8년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.