본문 바로가기

Backjoon

[백준 1152] 단어의 개수 - java 풀이

반응형


언뜻 보면 단순히 split함수를 써서 구해낼 수 있는 굉장히 쉬운 문제같지만 막상 풀어보면 이것저것 고려해줘야 할 부분이 있다.

먼저 첫번째로 처리해줘야 하는 부분은 입력 앞에 빈칸이 있는 경우다. 이 경우는 split함수를 쓰면 해당 빈칸을 공백으로 입력을 받게 된다. 

즉 이런 경우다. 아래 상황은 입력 앞에 공백이 있는 경우다.

 kakao naver google

이 경우 split(" ")을 통해 문자열을 쪼개면 아래와 '', 'kakao', 'naver', 'google'로 총 4개의 단어로 나뉘게 된다. 그러므로  맨 처음 원소가 ''일 경우 해당 부분을 처리하는 로직을 추가해줘야 한다.

두번째로는 아무 입력도 들어오지 않는 경우다. 이 경우에는 앞에서 맨 처음 원소가 ''일 경우를 비교하게 될때 runtime error가 발생할 수 있으므로, 이 부분 또한 고려해주어야 한다.

아래 코드는 최종적으로 작성된 코드.


import java.util.Scanner;
public class OneHour {
       public static void main(String[] args) {
             Scanner sc = new Scanner(System.in);
             String input = sc.nextLine();
             String [] arr = input.split(" ");
             
             if(arr.length > 0)
             {
                    if("".equals(arr[0]))
                           System.out.println(arr.length-1);
                    else
                           System.out.println(arr.length);
             }else
             {
                    System.out.println("0");
             }
       }
}


반응형