FIRE 문제에서 런타임 오류 문의드립니다.

  • iqjumps
    iqjumps

    FIRE 문제에서 런타임 오류가 나는데 원인을 알 수 없어 문의드립니다.
    (답안 번호 #238844)

    코드는 아래와 같습니다.
    특별한 것 없이 단순한 코드인데.. 원인을 잘 모르겠네요ㅜ
    런타임 에러 시 발생한 익셉션 등을 알수 있으면 참 좋을 것 같아요..

    속도 이외에 어떤 문제가 있을까요?
    (작업은 이클립스+JDK1.7 에서 했습니다.)

    import java.util.Scanner;

    public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt(); // 테스트 케이스 수
        int N;
        int P;
        short[] costs = new short[100000]; // 공사비용
        int[] totals = new int[100000]; // 공사비용
    
        while(T-- > 0) {
            N = sc.nextInt(); // 후보지점의 개수 <100000
            P = sc.nextInt(); // 봉화대의 시야
    
            for(int i=0; i<=N; i++) {
                totals[i] = 0;
    
                if(i != N)
                    costs[i] = sc.nextShort();
                else
                    costs[i] = 0;
    
                if(i < P)
                    totals[i] = costs[i];
                else {
                    int min = Integer.MAX_VALUE;
                    for(int j=i-P; j<i; j++)
                        if(totals[j] < min)
                            min = totals[j];
                    totals[i] = costs[i] + min;
                }
            }
            System.out.println(totals[N]);
        }
    }

    }


    10년 전
2개의 댓글이 있습니다.
  • Being
    Being
    int[] totals = new int[100000]; // 공사비용
    // ...
    for(int i=0; i<=N; i++) {
        totals[i] = 0;
        // ...
    

    이 부분이 문제가 되지 않을까요?


    10년 전 link
  • iqjumps
    iqjumps

    말씀하신거 보고 문제 다시 보니..
    조건이 10만 미만이 아니라 이하였네요;
    꼼꼼히 봤어야되는데 이런;;
    도움 감사합니다ㅎㅎ


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