boj)17413 - 단어 뒤집기 2
2020. 9. 14. 17:51ㆍPS/boj
import java.io.*;
import java.util.Stack;
public class boj_17413 {
static Stack<Character> s = new Stack<>();
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
char[] chars = br.readLine().toCharArray();
boolean isTag = false;
for (char aChar : chars) {
if (aChar == '<') {
while (!s.isEmpty()) {
sb.append(s.pop());
}
sb.append(aChar);
isTag = true;
} else if (aChar == '>') {
sb.append(aChar);
isTag = false;
} else if (isTag) {
sb.append(aChar);
} else {
if (aChar == ' ') {
while (!s.isEmpty()) {
sb.append(s.pop());
}
sb.append(' ');
} else {
s.push(aChar);
}
}
}
while (!s.isEmpty()) {
sb.append(s.pop());
}
System.out.println(sb.toString());
}
}
- 단어 뒤집기 1처럼 스택을 사용
- tag안의 값은 뒤집으면 안되는걸 boolean 으로 체크
- 공백 만나거나 열린 태그일시 지금까지 쌓은 스택 출력
- 마지막 문장이 무시될 수 있으니 다시 sb에 추가
'PS > boj' 카테고리의 다른 글
boj)17298 - 오큰수 (0) | 2020.09.15 |
---|---|
boj)10799 - 쇠막대기 (0) | 2020.09.14 |
boj)1158 - 요세푸스 문제 (0) | 2020.09.14 |
boj)1406 - 에디터 (0) | 2020.09.14 |
boj)1874 - 스택 수열 (0) | 2020.09.13 |