본문 바로가기

CodingTest

[백준] 1152 단어의 개수 - JAVA

trim()으로 공백을 제거한 후 풀어보았는데 계속 '틀렸습니다'가 떴다. 

import java.util.Scanner;

class Main{
    public static void main(String[] args){
       Scanner sc = new Scanner(System.in);
       String str = sc.nextLine().trim();
       String data[] = str.split(" ");

       System.out.println(data.length);

    }
}

 

질문을 보니 공백을 입력해 보라고 해서 공백을 입력해 보니 계속 1이 나와서 틀린 걸 알았다. 

 

trim()으로 양쪽의 공백을 제거한 후 공백을 기준으로 문자열에 나누어 저장하였다. 

 

split(" ")는 문자열을 공백 기준으로 나누기 때문에, 입력이 공백만 있다면 빈 문자열이 생성된다.

따라서 문자열이 비어있다면 if문 안의 0을 출력하고, 문자열이 비어있지 않다면 나누어진 배열의 길이를 출력해 단어의 개수를 나타낸다. 

 

⬇️⬇️⬇️⬇️⬇️ 정답 ⬇️⬇️⬇️⬇️⬇️

import java.util.Scanner;

class Main{
    public static void main(String[] args){
       Scanner sc = new Scanner(System.in);
       String str = sc.nextLine().trim();
       String data[] = str.split(" ");

        if(str.isEmpty()) {
            System.out.println(0);
        } else {
            System.out.println(data.length);
        }
    }
}

 

 

[혹시 잘못된 정보가 있다면 댓글로 남겨주시면 감사하겠습니다. ☺️]