티스토리 뷰

Etc/BOJ

[DSLR 9019] 런타임 에러 원인

혲이. 2018. 3. 21. 23:20
반응형



https://www.acmicpc.net/problem/9019

 

DSLR 문제를 풀다가 런타임에러가 떠서 12번을 시도하였다.

 

덕분에 정답률이 떨어졌다ㅜㅜ

 

정답 소스를 우선 보자!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class DSLR {
    static int MAX=10000;
    static int d(int num) {
        num=(2*num)%10000;
        return num;
    }
    static int s(int num) {
        if(num==0) {
            num=9999;
        }else {
            num--;
        }
        return num;
    }
    static int l(int num) {
        return (num%1000)*10+(num/1000);
    }
    static int r(int num) {
        return (num%10)*1000+(num/10);
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T=sc.nextInt();
        
        String[] how =new String[4];
        how[0]="D";
        how[1]="S";
        how[2]="L";
        how[3]="R";
        for(int testcase=0;testcase<T;testcase++) { //이 부분이었다 testcase<=T로 적는 실수를...
            int A = sc.nextInt();
            int B = sc.nextInt();
            
            Queue<Integer> q = new LinkedList<Integer>();
            boolean[] visited=new boolean[MAX];
            String[] dist = new String[MAX];
            int[] nodes =new int[4];
 
            q.add(A);
            visited[A]=true;
            dist[A]="";
            while(!q.isEmpty()){
                int now=q.poll();
                nodes[0]=d(now);
                nodes[1]=s(now);
                nodes[2]=l(now);
                nodes[3]=r(now);
                for(int i=0;i<nodes.length;i++) {
                    if(visited[nodes[i]]!=true) {
                        visited[nodes[i]]=true;
                        dist[nodes[i]]=dist[now]+how[i];
                        q.add(nodes[i]);
                    }
                }
            }
            System.out.println(dist[B]);
        }
    }
}
 
cs

 

33번 라인에 테스트 케이스 for문 범위 설정이었다........

(이럴수가......몇시간동안 삽질을 한거야.......ㅇㅅㅇ)

 

 

테스트케이스 설정오류로 런타임 에러가 나올 수 있다!!

 

 

잊지말자!!!

 

++

소스는 BFS를 이용하였고 DSLR 연산결과를 노드로 하였다!

거리대신 연산자를 저장하여 마지막에 한꺼번에 출력하였다.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함