본문 바로가기

알고리즘/백준

[백준] 1152 - 단어의 개수

반응형

1152번 문제

 

1. Scanner를 이용한 방법

import java.util.Scanner;
import java.util.StringTokenizer;

public class Main{
public static void main(String[] args){

    Scanner sc = new Scanner(System.in);
    String sen = sc.nextLine();

    StringTokenizer st = new StringTokenizer(sen, " ");

    System.out.println(st.countTokens());
        sc.close();
    }
}

 

2. BufferedReader를 이용한 방법

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{

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String sen = br.readLine();

    StringTokenizer st = new StringTokenizer(sen, " ");

    System.out.println(st.countTokens());
        br.close();
    }
}

 

처음에 split()을 이용하여 문제를 해결하려고 했는데 공백을 앞에 뒀을 경우에 공백도 문자로 취급이 되어 카운트 되는 문제로 에러가 발생했다.

trim()을 사용한 후에 split()을 쓰려고 했으나 trim() 역시 공백만 입력하였을 경우에 null로 카운트 되는 것이 아니었다.

결국 StringTokenizer를 이용해서 countTokens() 메서드를 사용하여 풀었다.

반응형

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 5622 - 다이얼  (0) 2024.03.01
[백준] 2908 - 상수  (0) 2024.02.29
[백준] 2675 - 문자열 반복  (0) 2024.02.27
[백준] 10809 - 알파벳 찾기  (0) 2024.02.26
[백준] 11720 - 숫자의 합  (0) 2024.02.25