AC

문제 풀러가기

5430

코드

import java.util.*;
import java.io.*;

public class Main {
  public static void main(String[] args) throws IOException {
    Scanner sc = new Scanner(System.in);
    int t = sc.nextInt();

    for(int tc = 0; tc < t; tc++) {
      StringBuilder sb = new StringBuilder();
      String p = sc.next();
      int n = sc.nextInt();
      int f = 0;
      int b = n - 1;
      boolean chk = true;
      String s = sc.next();
      String[] arr = s.substring(1, s.length() - 1).split(",");

      for(int i = 0; i < p.length(); i++) {
        if(p.charAt(i) == 'R') {
          chk = !chk;
        } else {
          if(chk) f++;
          else b--;
        }
      }

      if(f - b > 1) {
        sb.append("error");
        System.out.println(sb);
        continue;
      }
      sb.append("[");

      if(chk) {
        for(int i = f; i <= b; i++) {
          sb.append(arr[i]).append(",");
        }
      } else {
        for(int i = b; i >= f; i--) {
          sb.append(arr[i]).append(",");
        }
      }

      if(f - b != 1) {
        sb.delete(sb.length() - 1, sb.lengt());
      }

      sb.append("]");

      System.out.println(sb);
    }

  }
}

설명

입력받은 단어에 맞춰 동작하게 만들면 된다. 배열에 입력받은 수를 저장하고 R이 있을 때 마다 배열을 뒤집는다. 배열이 비어있을 때 error인데 이때 D일 때만 에러이다. 배열이 비어있고 R인 경우에는 빈 배열이 출력되어야 한다.