티스토리 뷰

 

문제

 

1152번: 단어의 개수

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

www.acmicpc.net

 

풀이

 StringTokenizer 클래스를 사용하는 것이 가장 편리합니다. 알아서 공백 문자열을 기준으로 잘라서 유효한 String만을 골라 추출하기 때문입니다. PS판에서 Java를 통해 문제를 풀겠다면 반드시 사용하게 되는 클래스입니다. StringTokenizer 클래스의 countTokens 메소드를 이용해 단어의 개수를 쉽게 알 수 있습니다.

 

* 주의점

 String의 split 메소드는 라인의 앞뒤에 공백 문자가 있거나 순수 공백 문자열 또는 빈 문자열에 대해 regex를 " "로 설정하고 메소드를 실행했을 때 문자열을 제대로 추출하지 못합니다. "".split(" ").length를 출력하면 1이 출력됩니다. 이 메소드를 이용해 문제를 풀 때는 라인의 앞뒤 빈 문자열을 잘라준 뒤 문자열이 빈 문자열인지 확인한 뒤 split 메소드를 이용해야 합니다.

 

 

코드

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

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));
        StringTokenizer st;

        st = new StringTokenizer(br.readLine());
        bw.write(st.countTokens() + "\n");

        bw.flush();
        bw.close();
        br.close();
    }
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함