-
boj)17413 - 단어 뒤집기 2PS/boj 2020. 9. 14. 17:51
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