[백준] 5430 AC

장철현·2024년 2월 15일
0

백준

목록 보기
78/80

링크

5430 AC

문제

풀이

그냥 시물레이션이다. 뒤집기도 있고 삭제도 있는데 뒤집은 상태냐 아니냐에 따라서 앞에서 삭제할지 뒤에서 삭제할지 달라지기 때문에 boolean 값을 통해 뒤집은 상태인지 아닌지 설정했다.
그리고 입력받은 원소들을 저장하는 것에서 시간을 좀 보냈다. 내가 한 방법은 replace를 통해 "["랑 "]"이거를 없애주고 , 단위로 나눠서 배열에 저장했다.

코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Deque;
import java.util.LinkedList;

public class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int testCase = Integer.parseInt(br.readLine());
		
		StringBuilder sb = new StringBuilder();
		for(int t=0;t<testCase;t++) {
			String[] command = br.readLine().split("");
			int len = Integer.parseInt(br.readLine());
			
			//순서가 순차적인지 아니면 역방향인지 체크
			boolean rightDire = true;
			Deque<String> deque = new LinkedList<>();
			
			String[] numbers = br.readLine().replace("[", "").replace("]", "").split(",");
//			System.out.println(Arrays.toString(numbers));
			for(int i=0;i<numbers.length;i++) {
				deque.add(numbers[i]);
			}
			
//			System.out.println(deque.peek().equals(""));
			
			boolean isError = false;
			
			for(int i=0;i<command.length;i++) {
				String currentCommand = command[i];
//				System.out.println(deque.size());
				
				if(currentCommand.equals("R")) {
					rightDire = !rightDire;
				} else {
					if(deque.size() == 0 || deque.peek().equals("")) {
						sb.append("error").append("\n");
						isError = true;
						break;
					}
					
					if(rightDire) {
						deque.pollFirst();
					} else {
						deque.pollLast();
					}
				}
				
				
			}
			
			if(isError) {
				continue;
			}
			sb.append("[");
			while(!deque.isEmpty()) {
				if(rightDire) {
//					System.out.println(deque.pollFirst());
					sb.append(deque.pollFirst());
				}
				else {
//					System.out.println(deque.pollLast());
					sb.append(deque.pollLast());
				}
				
				if(!deque.isEmpty())
				sb.append(",");
			}
			sb.append("]").append("\n");
			
			
		}
		
		System.out.println(sb.toString());
		
		
	}
}

0개의 댓글