문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다.
먼저, 문자열 S는 아래와과 같은 규칙을 지킨다.
첫째 줄에 문자열 S가 주어진다. S의 길이는 100,000 이하이다.
첫째 줄에 문자열 S의 단어를 조건에 맞게 바꿔서 출력한다.
import java.io.*;
public class WordReverse2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//문자열 S <= 100,000
var S = br.readLine().toCharArray();
var sb = new StringBuilder();
var word = new StringBuilder();//단어 저장 스택
boolean check = false; //< , > 가로 닫혔는지 열렸는지 판단
for (Character ss : S) {
if (ss == '<' || ss == '>' || ss == ' ' ){
sb.append(check ? word : word.reverse()).append(ss);//뒤집을지 판단 후 push
word.setLength(0); //word 초기화
if (ss != ' ') check = !check;
continue;
}
word.append(ss);
}
bw.write(sb.append(word.reverse()).toString());//남아있는 word 뒤집어서 sb에 push 후 출력
bw.flush();
bw.close();
}
}