코딩테스트/BOJ

[BOJ] 5430 AC - JAVA

5월._. 2022. 2. 7.
728x90

1. 문제


2. 풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.StringTokenizer;

public class BOJ_5430_AC {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(in.readLine());

        StringBuilder sb = new StringBuilder();

        while (T-->0) {
            //입력
            String P = in.readLine();
            int N = Integer.parseInt(in.readLine());

            Deque<Integer> deque = new ArrayDeque<>();
            StringTokenizer st = new StringTokenizer(in.readLine(), "[|]|,");
            while (st.hasMoreTokens()) {
                deque.offer(Integer.parseInt(st.nextToken()));
            }

            //탐색
            boolean isR = true;
            boolean error = false;
            for (int i = 0; i < P.length(); i++) {
                if (error) break;
                switch (P.charAt(i)) {
                    case 'R':
                        isR = !isR;
                        break;
                    case 'D':
                        if (deque.isEmpty()) error = true;
                        else if (isR) deque.poll();
                        else deque.pollLast();
                        break;
                }
            }

            //출력
            if(error) {
                sb.append("error\n");
                continue;
            }

            sb.append("[");
            while(!deque.isEmpty()) {
                if (isR) sb.append(deque.poll());
                else sb.append(deque.pollLast());
                if(deque.size()>=1) sb.append(",");
            }
            sb.append("]\n");

        }

        System.out.print(sb);
    }
}

다 풀었는데 마지막에 출력에서 자꾸 이상하게 나와서 15분동안 그것만 찾고 있었다. error일 때 continue를 써야하는데 break를 써버린 게 문제였다. 

문제 자체는 방향을 파악하는 isR변수와 error변수를 활용해서 쉽게 풀었다.


3. 결과

 

'코딩테스트 > BOJ' 카테고리의 다른 글

[BOJ] 2309 일곱난쟁이 - JAVA  (0) 2022.02.09
[BOJ] 2493 탑 - JAVA  (0) 2022.02.07
[BOJ] 1021 회전하는 큐 - JAVA  (0) 2022.02.07
[BOJ] 10866 덱 - JAVA  (0) 2022.02.07
[BOJ] 1966 프린터큐 - JAVA  (0) 2022.02.07

댓글