알고리즘/문제 [BOJ/백준 - 1046] 에디터 - 문제 출처:https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters public class BOJ_1406 { static char[] arr = new char[100002]; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuffer str = new StringBuffer(br.readLine()); char[] cArr = str.toString().toCharArray(); int testCase = Integer.parseInt(br.readLine()); StringTokenizer st; Deque<Character> left = new LinkedList<>(); Deque<Character> right = new LinkedList<>(); for(int i=0; i<cArr.length; i++){ left.add(cArr[i]); } while(testCase > 0){ st = new StringTokenizer(br.readLine()); String status = st.nextToken(); if("L".equals(status)){ if(!left.isEmpty()){ right.addFirst(left.removeLast()); } }else if("D".equals(status)){ if(!right.isEmpty()){ left.addLast(right.removeFirst()); } }else if("B".equals(status)){ if(!left.isEmpty()){ left.removeLast(); } }else{ left.addLast(st.nextToken().charAt(0)); } testCase--; } StringBuilder answer = new StringBuilder(); left.forEach((c)->{answer.append(c);}); right.forEach((c)->{answer.append(c);}); System.out.print(answer); } } view raw BOJ_1406.java hosted with ❤ by GitHub Deqeue를 2개 만들어 현재 커서 위치 기준으로 왼쪽 데이터, 오른쪽 데이터를 나눠서 문제의 조건대로 문자를 왓다리 갓다리 하면 된당 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기Time to lazy Contents 당신이 좋아할만한 콘텐츠 [BOJ/백준 - 1946] 신입 사원 2022.01.10 [BOJ/백준 - 1931] 회의실 배정 2022.01.09 [BOJ/백준 - 2839] 설탕 배달 2021.09.30 [BOJ/백준 - 2869] 달팽이는 올라가고 싶다 2021.09.30 댓글 1 + 이전 댓글 더보기