MATCHORDER 문제 (JAVA) RTE가 나는데 원인을 모르겠어요... 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 1 3 1 2 3 6 7 8 위 케이스는 어떨까요? ko 가 압도적으로 우세할 경우.. 마지막 k 루프 돌면서 ko는 비게 되고 다음 j 루프에서 ko.get(0)는 오류를 발생시킬 것으로 보이네요. 8년 전 link syppy1117 정말 감사합니다ㅠ 덕분에 문제를 해결했어요!! 8년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
syppy1117
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Main {
// System.out.println(ru.toString());
// System.out.println(result.toString());
System.out.println(win);
}
}
}
8년 전