영어 대소문자와 공백으로 이루어진 문자열이 주어짐
단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 함
countTokens()
를 사용함으로써 토큰의 개수를 반환하기만 하므로 -> O(1)가장 많은 시간이 소요되는 문자열의 길이에 비례하므로 해당 문제의 시간 복잡도는 O(N)
import java.io.*;
import java.util.StringTokenizer;
public class No_1152 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
System.out.print(st.countTokens());
}
}
StringTokenizer 클래스는 문자열을 사용자가 지정한 구분자로 쪼개주는 클래스
쪼개어진 문자열은 토큰이라고 부른다
StringTokenizer(String str)
: 문자열을 공백을 기준으로 분리String nextToken()
: 문자열에서 다음 토큰을 가져옴boolean hasMoreTokens()
: 분리할 토큰이 더 남아 있는지 확인countTokens()
: 남아있는 토큰의 개수를 반환