문제는 다음과 같다
알고리즘 자체는 단순했다. 문자열을 나누어 뒤집을지 안 뒤집을지 결정하면 되는 문제였지만 StringTokenizer의 사용법과 문자열(String)에서의 인덱스 활용하는 법에 익숙하지 않았다.
이 문제는 StringTokenizer를 활용하였고, 문자를 구분한 후에도 순서를 뒤집을 것인지 아닌지 결정해야 하기 때문에 returnDelim의 매개변수를 true로 넘겨 주었다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
int n, k, idx = 0;
String tmp;
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine(), " <>", true);
while (st.hasMoreTokens()){
tmp = st.nextToken();
if (tmp.equals("<")){
bw.write(tmp);
while(!(tmp = st.nextToken()).equals(">")){
bw.write(tmp);
}
bw.write(tmp);
}
else {
n = tmp.length() - 1;
for(int i = n; i >= 0; i--){
bw.write(tmp.charAt(i));
}
}
}
bw.flush();
bw.close();
}catch (Exception e)
{
e.printStackTrace();
}
}
}