게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바에서 Runtime Error가 뜨는 경우는 어떤경우?
게시물ID : computer_41888짧은주소 복사하기
작성자 : 그레이브스
추천 : 0
조회수 : 234회
댓글수 : 1개
등록시간 : 2012/03/28 22:56:09
자바.. 독학하는 학생입니다.
자바환경 jdk1.7 //  이클립스에서 코딩하고 있습니다.
자바 문제 풀면서 공부하는 중인데 이상한데서 막히네요.

문제 : 
 영어 알파벳으로 이루어진 문자열 S와 정수의 순서쌍 i,j가 주어지면, i에서 j까지의 구간의 문자열을 뒤집어서 전체 문자열을 출력한다.
 예를 들어, S="iloveyou"이고, i,j가 {(2,5)}로 주어지면, 결과는 "ievolyou"가 된다. 또한 S="ieovlyou"이고, i,j가 {(2,5),(3,4)}로 주어지면 일차적으로 "ilvoeyou"가 되고, 최종적으로 "iloveyou"가 된다.

Input : 
 입력의 첫줄은 테스트 케이스의 개수 T(1<=T<=100)가 주어지며, 각 케이스마다 첫 줄에 문자열 S(1<=문자열 S의 길이<=100)가 주어지고, 두 번째 줄에 순서쌍 i,j(1<=i<=j<=문자열 S의 길이)의 개수, 그리고 세 번째 줄에 순서쌍 i,j가 주어진다.

Output :
 출력은 각 테스트 케이스 마다 한줄로 하며, 문자열의 주어진 구간을 모두 뒤집은 후 결과를 출력한다.

Sample Input :

2
iloveyou
1
2 5
ieovlyou
2
2 5 3 4

Sample Output :
ievolyou
iloveyou

문제 채점하는 홈페이지가 따로 있어요.
그 홈페이지는 jdk1.6버전으로 채점하고, javac Main.java로 실행한다고 써있습니다.

문제대로 코딩을 했는데 
아직 초보수준이라 객체지향적 코딩은 아니지만 아무튼 어찌어찌 해서 짠 코딩인데 이클립스에서는 돌리면 문제없이 실행이 됩니다. 아웃풋 제대로 나오는데 홈페이지에 제출만 하면 Runtime Error라고 뜨네요.
제가 쓴 것중에 딱히 1.7에서만 쓰이는 함수나.. 뭐 이런걸 사용한건 아닌거같은데..
정말 기초 코딩으로 진행했다고 생각하거든요.. 

어디가 문제가 되서 Runtime Error가 뜰까요?
홈페이지에서 Runtime Error가 뜨는 법으로
 'segmentation fault','floating point exception','used forbidden 펑션', 'tried to access forbidden memories' 등의 에러가 발생하여서 실행도중에 프로그램이 종료된 경우라고 뜨는데..

자바 고수님들 도와주세요 ㅠ.ㅠ.ㅠ.ㅠ.ㅠ



import java.util.Scanner; 
  
public class Main { 
    static String[] strArr; 
    static int[][][] orderedPair; 
    public static void main(String[] args) { 
        Scanner(); 
        DoProcess(); 
    } 
    private static void DoProcess() { 
        int a , b ;  
        String[] temp; 
        String tmp; 
        for(int i = 0 ; i < strArr.length ; i++){ 
            temp = strArr[i].split(""); 
            for(int i2 = 0 ; i2 < orderedPair[i].length ; i2++){ 
                a = orderedPair[i][i2][0]; 
                b = orderedPair[i][i2][1]; 
                if((b - a) % 2 == 0){ 
                    while((b != a)){ 
                        tmp = temp[a]; 
                        temp[a] = temp[b]; 
                        temp[b] = tmp; 
                        a++; 
                        b--; 
  
                    } 
                } else { 
                    while((a - b) != 1 ){ 
                        tmp = temp[a]; 
                        temp[a] = temp[b]; 
                        temp[b] = tmp; 
                        a++; 
                        b--; 
                    } 
  
                } 
            } 
            for(int i2 = 1 ; i2 < temp.length ; i2++){ 
                System.out.print(temp[i2]); 
            } 
            System.out.println(); 
        } 
    } 
    private static void Scanner() { 
        Scanner sc = new Scanner(System.in); 
        int input = Integer.parseInt(sc.nextLine()); 
        int tmp; 
        int a, b; 
        strArr = new String[input]; 
        orderedPair = new int[input][][]; 
        for(int i = 0 ; i < input ; i++){ 
            strArr[i] = sc.nextLine(); 
            tmp = Integer.parseInt(sc.nextLine()); 
            orderedPair[i] = new int[tmp][2]; 
            for(int i2 = 0; i2 < tmp ; i2++){ 
                orderedPair[i][i2][0] = sc.nextInt(); 
                orderedPair[i][i2][1] = sc.nextInt(); 
            } 
            sc.nextLine(); 
        } 
      } 
}
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호