[백준] 9093번 단어 뒤집기 자바(Java)
by coco3o반응형
https://www.acmicpc.net/problem/9093
문자열 뒤집기는 다양한 방법으로 문제를 풀 수 있다.
Stack으로 구현하는 방법,
StringBuilder와 StringBuffer의 reverse() 메소드로 구현하는 방법,
반복문을 이용해 거꾸로 출력하기 등
필자는 Stack을 이용해 문제를 풀었다.
정답 코드
import java.io.*;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int t = Integer.parseInt(br.readLine());
while (t-- > 0) {
Stack<Character> stack = new Stack<>();
String str = br.readLine() +"\n";
for (char ch : str.toCharArray()) {
if (ch == ' ' || ch == '\n') {
while (!stack.isEmpty()) {
bw.write(stack.pop());
}
bw.write(ch);
}
else stack.push(ch);
}
}
bw.flush();
}
}
설명
문장에서 공백이나 개행을 만나기 전까지 stack에 데이터를 담고,
공백이나 개행을 만났을 때 스택에서 데이터를 꺼내 버퍼에 담는다.
꺼낸 후 현재위치값(공백이나 개행)을 버퍼에 담는다.
-반복-
반응형
'🏅Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 1436번 영화감독 숌 자바(Java) (2) | 2022.03.14 |
---|---|
[백준] 1158번 요세푸스 문제 자바(Java) (0) | 2022.03.14 |
[백준] 10798번 세로읽기 자바(Java) (0) | 2022.02.19 |
[백준] 1181번 단어 정렬 자바(Java) (0) | 2022.02.18 |
[백준] 7568번 덩치 자바(Java) (0) | 2022.02.18 |
블로그의 정보
슬기로운 개발생활
coco3o