본문 바로가기

코딩 테스트

[백준 : JAVA] 9093 단어 뒤집기

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.nextLine()); // nextInt() 다음 enter 값이 남아서 다음
                                                //nextLine()시 공백이 읽혀버림
        for (int i = 0; i <n ; i++) {
            String s = sc.nextLine();
            String[] arr = s.split(" ");
            StringBuilder sb = new StringBuilder();
            for(int j= 0; j<arr.length; j++){
                StringBuilder sb2 = new StringBuilder(arr[j]);
                String reverse = String.valueOf(sb2.reverse());
                sb.append(reverse);
                sb.append(" ");
            }
            System.out.println(sb);
        }
    }
}

 

맨처음 int n = sc.nextInt()로 n값을 받았는데 그랬더니 예를들어 n = 3값을 넣고 enter를 치면 3만 들어오고 enter값은 들어오지 않고 그대로 남게 되었다. 그래서 다음 for문을 돌릴때 String s = sc.nextLine()을 실행할때 남아있던 enter값이 들어오는 바람에 빈 데이터가 s로 들어오는 오류를 겪게 되었다. 다만 어차피 첫 int n값으로는 integer값만 들어올거기 때문에 parseInt로 형변환을 해주었다.

혹시라도 더 좋은 방법이 있다면 알려주시길 바랍니다.!!

 

https://github.com/osy9536/Algorithm.git