XHAENEUNG 에서 계속 RTE(nonzero return code) 에러가 납니다..

  • ksh9010166
    ksh9010166

    안녕하세요.
    알고리즘공부를 시작한 한 청년입니다.

    튜토리얼 XHAENEUNG 문제를 풀기전까지는 RTE 에러가 나지않았는데, RTE 에러가 나서 이렇게 질문을 올립니다.

    우선, eclipse 환경에서는 에러가 나지않습니다.. 정확히 RTE란 에러가 언제나는지 알고싶어요..
    런타임에러 RTE(nonzero return code)란 단어만 써있고 그에대한 얘기가 하나도 없습니다.

    혹시 저희코드에 문제가 있을까 ,코드도 같이 올립니다.

    nonzero return code를 검색해보았는데, 정확히 어떨때 나는 에러인지 몰라서 질문드립니다..

    답변주시면감사하겠습니다.!

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    
    
    public class Main {
        public static void main(String[] args) throws Exception{
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
            int count = Integer.parseInt(br.readLine());
            int[] num = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
            String[] strNum = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
            String[] strArr = new String[count];
            String resultStr = "";
            int first = 0;
            int second = 0;
            int result = 0;
    
            for(int i=0; i<count; i++)
                strArr[i] = br.readLine();
    
            for(int i=0; i<count; i++){
                String[] strResult = strArr[i].split(" ");
    
                for(int k=0; k<strNum.length; k++){
                    if(strResult[0].equals(strNum[k])){
                        first = num[k];
                    }
    
                    if(strResult[2].equals(strNum[k])){
                        second = num[k];
                    }
                }
    
                switch(strResult[1]){
                    case "+" :
                        result = first + second;
                        break;
                    case "*" :
                        result = first * second;
                        break;
                    case "-":
                        result = first - second;
                        break;
                }
    
                resultStr = strNum[result];
                resultStr = sortStr(resultStr);
                strResult[4] = sortStr(strResult[4]);
    
                if(resultStr.equals(strResult[4]))
                    System.out.println("YES");
                else
                    System.out.println("NO");
            }
            br.close();
        }
    
        public static String sortStr(String str){
            // 삽입정렬
            char[] param = str.toCharArray();
            int i, j, min;
            int size = param.length;
    
            for(i=0; i<size; i++){
                min = i;
                for(j=i+1; j<size; j++){
                    if(param[j]<param[min])
                        min = j;
                }
    
                swap(param, i, min);
            }
            return new String(param);
        }
    
        public static void swap(char[] array, int i, int j){
            char temp = array[i];
            array[i] = array[j];
            array[j] = temp;
        }
    
    }
    

    7년 전
2개의 댓글이 있습니다.
  • Corea
    Corea

    RTE는 잘못된 인덱스에 접근하시는 등의 프로그램이 정상적으로 종료되지 않은 상황에 나타나는 에러 메시지입니다.
    다음 예제를 넣어보세요.

    1
    one - nine = nine

    7년 전 link
  • ksh9010166
    ksh9010166

    아 감사합니다. 그런경우도있군요^^!!


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