내 코드
import java.util.*;
public class Q9093 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = Integer.parseInt(sc.nextLine());
for(int i = 0; i < N; i++){
String str = sc.nextLine();
String[] arr = str.split(" ");
for(int j = 0; j < arr.length; j++){
System.out.print(new StringBuilder(arr[j]).reverse().toString() + " ");
}
System.out.println();
}
}
}
- 처음에는 전체 문장을 reverse 하면 되는 매우 간단한 문제라고 생각했었다. 하지만 한 단어씩 reverse 하는 문제였다. 항상 문제를 제대로 읽자^^,,,
- N을 nextline으로 입력받기 때문에 줄바꿈 문자인
\n
도 count 하기 때문에 반복문을 제대로 돌지 못했다.
int N = Integer.parseInt(sc.nextLine());
문장을 사용해서 해결할 수 있었다.
- 한 단어씩 reverse 하려면
split
을 사용하는 게 제일 적절하다고 생각했다.
- 새로운
StringBuilder
를 사용해서 arr
의 요소값을 생성함과 동시에 reverse해서 출력했다.
- 출력할 때
print
로 출력해야 줄바꿈이 되지 않는다.
- 띄어쓰기로 포함해야지 예상 출력과 동일하게 나올 수 있다.
- 한 문장이 끝날 때마다 줄바꿈이 되어야 하기 때문에
println
을 사용한다.
https://www.acmicpc.net/problem/9093