[알고리즘]

백준 1152번 : 단어의 개수

지기음 2022. 11. 7. 08:46

이번 문제는 입력받은 문장에서 단어의 개수를 세는 문제이다.

주의 할 점은 공백은 단어에 미포함이라는 점이다. 
공백만 입력했을 때, space를 여러번 누르고 문장을 입력했을 때도 단어의 개수만 정확히 출력해야한다.

import java.util.Scanner;
import java.util.Arrays;

import java.io.*;
public class Main{

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		String a[] = br.readLine().split(" ");
		int n = 0;
		int result = a.length;
		while(n<a.length) {
			if(a[n]=="") {
				result--;
			}
			n++;
		}
		System.out.println(Arrays.toString(a)); 
		System.out.println(result);

		
	}

}

java.util.arrays 는 array를 한번에 출력해주어 확인할 때 유용한 메소드이다. 
공백만 들어오거나 많은 공백이후 문장이 들어오면 단어에 개수가 많아지는 것을 대비하기 위하여 첫 공백의 개수만큼 결과값을 빼주면 올바른 단어의 개수가 나온다! 

<만약 while문을 안했다면>

위의 사진처럼 공백도 인식하여 단어의 개수를 제대로 출력 못해!