백준 알고리즘
12. 17413번 단어뒤집기2
Romenest
2021. 9. 13. 10:00
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Stack;
public class training {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
String string = br.readLine();
Stack<Character> stack = new Stack<>();
boolean tag = false;
for (int i = 0; i < string.length(); i++) {
char c = string.charAt(i);
// <> 태그 안의 내용 담기
if (c == '<') {
while (!stack.isEmpty()) {
sb.append(stack.pop());
}
tag = true;
sb.append(c);
} else if (c == '>') {
tag = false;
sb.append(c);
} else if (c == ' ') {
while (!stack.isEmpty()) {
sb.append(stack.pop());
}
sb.append(c);
} else if (tag) {
sb.append(c);
}
// <> 태그 밖 즉, 실질적으로 뒤집을 내용들
else {
stack.push(c);
}
}
while (!stack.isEmpty()) {
sb.append(stack.pop());
}
bw.write(sb.toString());
bw.flush();
bw.close();
}
}
결과