알고리즘/백준

[백준] 5397. 키로거

vivi 2021. 10. 27. 04:03
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.LinkedList;
import java.util.ListIterator;

class Main {

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		LinkedList<Character> list = new LinkedList<>();
		ListIterator<Character> iter = list.listIterator();

		int n = Integer.parseInt(br.readLine());

		for (int i = 0; i < n; i++) {

			for (char c : br.readLine().toCharArray()) {
				switch (c) {
				case '<':
					if (iter.hasPrevious())
						iter.previous();
					break;
				case '>':
					if (iter.hasNext())
						iter.next();
					break;
				case '-':
					if (iter.hasPrevious()) {
						iter.previous();
						iter.remove();
					}
					break;
				default:
					iter.add(c);
					break;
				}
			}

			for (char c : list) {
				bw.write(c);
			}
			list.clear();
			iter = list.listIterator();
			bw.write('\n');
		}
		bw.flush();
		br.close();
		bw.close();
	}
}