17413번: 단어 뒤집기 2
문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('<', '>')로만 이루어져
www.acmicpc.net
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
char[] S = br.readLine().toCharArray();
int N = S.length;
Stack<Character> stack = new Stack<>();
int i = 0;
while (i < N) {
if (S[i] == ' ') {
while (!stack.isEmpty()) {
sb.append(stack.pop());
}
sb.append(" ");
} else if (S[i] == '<') {
while (!stack.isEmpty()) {
sb.append(stack.pop());
}
while (S[i] != '>') {
sb.append(S[i]);
i++;
}
sb.append('>');
} else {
stack.push(S[i]);
}
i++;
}
while (!stack.isEmpty()) {
sb.append(stack.pop());
}
System.out.print(sb);
}
}
728x90
'알고리즘 > 구현' 카테고리의 다른 글
[백준][JAVA] 25206번 너의 평점은 (0) | 2024.01.30 |
---|---|
[백준][JAVA] 11926번 배열 돌리기 1 (1) | 2023.12.18 |
[백준][JAVA] 1244번 스위치 켜고 끄기 (1) | 2023.12.18 |
[백준][JAVA] 2615번 오목 (1) | 2023.12.18 |