Algorithm

[Java] 백준 1152 단어의 갯수 문제 풀이

수다아리 2021. 5. 14. 01:37

1152번 '단어의 개수' 문제 풀이입니다

BufferedReader와 StringTokenizer를 사용하면 바로 풀 수 있는 문제입니다.

BufferedReader는 문자열을 입력받을 때 buffer를 사용해서 받습니다

이것은 Scanner 방식보다 빠르다고 합니다 제가 방금 푼 문제도 Scanner를 사용하지 않고

BufferedReader를 사용해야 풀 수 있었습니다

 

그리고 BufferedReader를 사용해서 받은 문자열을 띄어쓰기를 기준으로 나눠줘야 합니다

그래야 단어의 개수를 알 수 있습니다

그렇게 나눠지면 나눠진 단위를 토큰이라고 합니다

그럼 그 토큰들의 개수를 알면 됩니다

 

하지만 countToken이라는 편안한 메서드가 있기 때문에 따로 계산을 하지 않고 countToken만 출력해줘도 됩니다

 

아래가 제가 짠 코드입니다

위의 내용만 알고 있으면 쉽게 풀 수 있는 문제입니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		
		//버퍼로 문자열을 받을 수 있게 BufferedReader를 만들어 준다
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		//br이 받은 문자열을 띄어쓰기를 기준으로 나눈다
		StringTokenizer str = new StringTokenizer(br.readLine(), " ");
		
		//현재 토큰의 갯수가 단어의 숫자이므로 countTokens()를 사용한다
		int count = str.countTokens();
		System.out.println(count);
	}

}