백준 9093번(java)

문제는 다음과 같다.

문제
문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다.

입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다.

출력
각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다.

=============================================================

예제 입력
2
I am happy today
We want to win the first prize

예제 출력
I ma yppah yadot
eW tnaw ot niw eht tsrif ezirp

=============================================================
생각해보면 간단하게 풀 수 있다.
count변수를 만들어 숫자를 입력받는다.
반복문을 사용하여 StringTokenizer의 nextElement()로 문장의 토큰을 하나씩 읽는다.
하나씩 읽은 토큰의 문자를 반대순으로 출력한다.
뛰어쓰기 및 개행처리를 해준다.

하여 코드는 다음과 같다.

'''
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.StringTokenizer;

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 cnt = Integer.parseInt(br.readLine());

	for(int i = 0; i < cnt; i++) {
		StringTokenizer st = new StringTokenizer(br.readLine());
		String str = new String();
		while(st.hasMoreTokens()) {
			str = st.nextToken();
			for(int j = str.length()-1; j >= 0; j--)
				bw.write(str.charAt(j));
			bw.write(" ");
		}
		bw.write("\n");
	}
	bw.flush();
	bw.close();
}

}
'''

좋은 웹페이지 즐겨찾기