1. 문제
2. 풀이
- nextInt()로 테스트 케이스 입력값을 주고 입력을 하게 되면 nextInt()는 띄어쓰기를 기준으로 입력값을 받고,
- 개행 문자인 \n이 그대로 남아있어서 다음 nextLine() 쓰면 nextLine()이 한 줄이 씹히게 된다. 그것을 방지하고자 scanner.nextLine()을 형 변환하여 두 개로 인식하게 정수로 바꾸어 저장해준 것이다.
- 테스트 케이스만큼 도는 포문을 만들고 포문 안에서 nextLine()으로 입력을 받는다.
- 입력받은 한줄을 단어마다 뒤집기 위해서 str.split(" ") 공백 기준으로 나누어 String배열에 담는다.
- forEach를 활용해서 한 단어 씩 넣어 대입하고 StringBuilder를 만들어서 그 안에 넣어준다. 두 번째 sb.Builder에서 문자를 뒤집고 공백을 붙여 첫 번째 StringBuilder에 저장한다.
- 여기서 StringBuider를 2개 활용한 이유는 단어를 중간에 공백 기준으로 뒤집은걸 ForEach가 반복하면서 두 번째 StringBuilder안에 담겨 있는 값을 초기화해서 붙여주는 방식이다.
- 테스트 케이스 만큼 도는 for문 끝나기 전에 ("\n") 줄 바꿔 주어 출력하며 된다.
3. 코드 (StringBuilder활용)
package baekjoon;
import java.util.*;
public class Q9093 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = Integer.parseInt(scanner.nextLine());
StringBuilder answer = new StringBuilder();
for (int i = 0; i < n; i++) {
String str = scanner.nextLine();
String[] splits = str.split(" ");
for (String s : splits) {
StringBuilder sb = new StringBuilder(s);
answer.append(sb.reverse()).append(" ");
}
answer.append("\n");
}
System.out.println(answer);
}
}
'Algorithm' 카테고리의 다른 글
[Java] 백준 10798번 : 세로읽기 ver.2 (0) | 2022.02.16 |
---|---|
[Java] 백준 10804번 : 카드 역배치 (0) | 2022.02.16 |
[Java] 백준 10798번 : 세로읽기 (0) | 2022.02.15 |
[Java] 백준 1316번 : 그룹 단어 체커 (0) | 2022.02.14 |
[Java] 백준 1159번 : 농구 경기 (0) | 2022.02.13 |