Hayden's Archive
[알고리즘] 백준 - 17413번 : 단어 뒤집기 2 본문
알고리즘 문제 출처 : https://www.acmicpc.net/problem/17413
내가 작성한 코드
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 Main {
public static void main(String[] args) throws NumberFormatException, IOException {
Stack<String> temp = new Stack<>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
String str = br.readLine();
String now = "";
for(int i=0; i<str.length(); i++) {
now = str.substring(i,i+1);
if(now.equals("<")) { //태그일 경우
if(!temp.isEmpty()) {//앞선 스택이 비었는지 확인
while(!temp.isEmpty()) {
sb.append(temp.pop());
}
}
while(true) {
sb.append(now);
if(now.equals(">")) break;
i++;
now = str.substring(i,i+1);
}
}
else { //태그가 아닐 경우
if(now.equals(" ")) { //공백일 경우
while(!temp.isEmpty()) {
sb.append(temp.pop());
}
sb.append(" ");
continue;
}else if(i==str.length()-1){//마지막 문자일 경우
temp.push(now);
while(!temp.isEmpty()) {
sb.append(temp.pop());
}
break;
}else { //공백이 아닐 경우
temp.push(now);
}
}
}//for
bw.write(sb.toString());
bw.flush();
bw.close();
}
}