시간&메모리 제한
문제
입력&출력
문제풀이
package com.Back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class Back_5397 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int testCase = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
char[] str;
for (int tc = 0; tc < testCase; tc++) {
str = br.readLine().toCharArray();
Stack<Character> left = new Stack<Character>();
Stack<Character> right = new Stack<Character>();
for (int i = 0; i < str.length; i++) {
switch (str[i]) {
case '<':
if (!left.isEmpty()) {
right.push(left.pop());
}
break;
case '>':
if (!right.isEmpty()) {
left.push(right.pop());
}
break;
case '-':
if(!left.isEmpty()) {
left.pop();
}
break;
default:
left.push(str[i]);
}
}
for(Character c : left) {
sb.append(c);
}
while(!right.isEmpty()) {
sb.append(right.pop());
}
sb.append("\n");
}
System.out.println(sb);
}
}
- 이 문제를 풀기 위해서 Stack을 이용했습니다.
- for 문을 이용해서 문자열 길이 만큼 돌려줍니다.
- 왼쪽과 오른쪽으로 구분하여 특수 문자와 문자들을 처리해줬습니다.
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_19941 햄버거 분배(자바) / 그리디 알고리즘 (0) | 2021.07.10 |
---|---|
백준_11501 주식(자바) / 그리디 알고리즘 (0) | 2021.07.09 |
백준_1543 문서 검색(자바) / 문자열 (0) | 2021.07.08 |
백준_1302 베스트셀러(자바) / 문자열 (0) | 2021.07.07 |
백준_1764 듣보잡(자바) / 문자열 (0) | 2021.07.07 |