백준

BOJ[java]_5397 키로거

양갱이요 2023. 2. 26. 21:10

백준 링크 : https://www.acmicpc.net/problem/5397

필요 알고리즘 개념 : LinkedList, ListIterator

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.ListIterator;

public class Main {
    public static void main(String[] args) throws NumberFormatException, IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(reader.readLine());
        for (int i = 0; i < T; ++i) {
            String s = reader.readLine();
            LinkedList<Character> list = new LinkedList<>();
            ListIterator<Character> iterator = list.listIterator();
            for (char c : s.toCharArray()) {
                switch (c) {
                case '<': if (iterator.hasPrevious()) iterator.previous(); break;
                case '>': if (iterator.hasNext()) iterator.next(); break;
                case '-':
                    if (iterator.hasPrevious()) {
                        iterator.previous();
                        iterator.remove();
                    }
                    break;
                default:
                    iterator.add(c);
                }
            }
            StringBuilder builder = new StringBuilder();
            for (char c : list)
                builder.append(c);
            System.out.println(builder.toString());
        }
    }
}