[백준][Java] 5430번 AC (String, Deque)

[백준][Java] 5430번 AC (String, Deque)

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 64 65

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Deque; import java.util.LinkedList; import java.util.StringTokenizer; public class Main { private static BufferedReader br = new BufferedReader( new InputStreamReader( System . in )); private static BufferedWriter bw = new BufferedWriter( new OutputStreamWriter( System . out )); public static void main( String [] args) throws IOException{ int T = Integer. parseInt (br.readLine()); StringBuilder sBuilder = new StringBuilder(); Loop1: for ( int i = 0 ; i < T; i + + ) { String functions = br.readLine(); int n = Integer. parseInt (br.readLine()); String numArr = br.readLine().replaceAll( "[ \\[|\\] ]" , "" ); StringTokenizer stk = new StringTokenizer(numArr, "," ); Deque < Integer > deque = new LinkedList < Integer > (); boolean reverse = false ; while (stk.hasMoreTokens()) { deque. add (Integer. parseInt (stk.nextToken())); } for ( int j = 0 ; j < functions. length (); j + + ) { if (functions. charAt (j) = = 'R' ) reverse = ! reverse; else if (functions. charAt (j) = = 'D' ) { if (deque.size() < = 0 ) { sBuilder.append( "error

" ); continue Loop1; } else if (reverse) deque.pollLast(); else deque.pollFirst(); } } sBuilder.append( "[" ); while (deque.size() > 0 ) { if (reverse) sBuilder.append(deque.pollLast() + "," ); else sBuilder.append(deque.pollFirst() + "," ); } if (sBuilder. charAt (sBuilder. length () - 1 ) = = ',' ) { sBuilder.setLength(sBuilder. length () - 1 ); } sBuilder.append( "]

" ); } bw.write(sBuilder. toString ()); bw.flush(); bw.close(); } } Colored by Color Scripter

from http://aig2029.tistory.com/264 by ccl(A) rewrite - 2021-09-09 04:01:34