[백준 알고리즘 문제풀이][JAVA][1152번] 단어의 개수

문제 - 백준 문제 바로가기

영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다.
이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오.
단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.



입력

첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다.
이 문자열의 길이는 1,000,000을 넘지 않는다.
단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다.
또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다.



출력

첫째 줄에 단어의 개수를 출력한다.



시간제한

2초



알고리즘 유형

  • 구현
  • 문자열


예제입력 1

The Curious Case of Benjamin Button

예제출력 1

6


예제입력 2

Mazatneunde Wae Teullyeoyo

예제출력 2

3


예제입력 3

Teullinika Teullyeotzi

예제출력 3

2




풀이 1


import java.io.*;
import java.util.Scanner;

public class Main {

  public static void main(String[] args){
    go2();
  }

  public static void go() throws IOException{
    BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
    BufferedWriter bw = new BufferedWriter( new OutputStreamWriter( System.out ) );
    String[] str = br.readLine().split(" ");
    int r = 0;
    for(String a:str) if(!a.replaceAll(" ", "").equals("")) r++;
    bw.write(r+"");
    bw.flush();
  }

}




풀이 2


import java.io.*;
import java.util.Scanner;

public class Main {

  public static void main(String[] args){
    go2();
  }

  public static void go2() {
    Scanner sc  = new Scanner(System.in);
    String str = sc.nextLine();
    String[] arr = str.split(" ");
    int result = 0;
    for (String s : arr) if(!s.equals("")) result++;
    System.out.print(result);
  }

}




GitHub 소스는 여기서 확인 가능 합니다.




마지막 수정