
풀이
import java.io.*;
import java.util.Stack;
public class S17413 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String S = br.readLine();
int len = S.length();
Stack<Character> stack = new Stack<>();
boolean tag = false;
for (int i = 0; i < len; i++) {
if(S.charAt(i) == '<'){
tag = true;
while (!stack.isEmpty()) {
sb.append(stack.pop());
}
sb.append(S.charAt(i));
} else if (S.charAt(i) == '>') {
tag = false;
sb.append(S.charAt(i));
} else if (tag) {
sb.append(S.charAt(i));
} else if (!tag) {
if (S.charAt(i) == ' ') {
while (!stack.isEmpty()) {
sb.append(stack.pop());
}
sb.append(S.charAt(i));
} else {
stack.push(S.charAt(i));
}
}
}
while (!stack.isEmpty()) {
sb.append(stack.pop());
}
System.out.println(sb);
}
}
boolean 변수 tag를 사용해서 이 문자열이 태그의 내부인지 외부인지를 판별
stack을 사용해서 <를 만나거나 공백일 경우에 꺼내서 문자를 뒤집어 출력
'Algorithm' 카테고리의 다른 글
자료구조 / 백준 17298 오큰수 (0) | 2025.04.09 |
---|---|
자료구조 / 백준 10799 쇠막대기 (0) | 2025.04.08 |
자료구조 / 백준 10866 덱 (0) | 2025.04.06 |
자료구조 / 백준 1158 요세푸스 문제 (0) | 2025.04.05 |
자료구조 / 백준 10845 큐 (0) | 2025.04.03 |