본문 바로가기

Algorithm/문제풀이

백준 온라인 저지 - 1152번: 단어의 개수

🔍 문제


 

1152번: 단어의 개수

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

www.acmicpc.net

 

✏️ 풀이 - Java


중복되는 단어는 빼야하는 건 줄 알고 set으로 풀었다가 틀렸습니다!라고 떴길래 문제를 다시 읽었더니 중복된 단어 개수도 모두 세었어야 했다. 그래서 arrayList써서 풀었다. 정답률이 24%이길래 눌러봤는데 이런 문제야 말로 블로그에 글 +1 하려고 풀어본 문제인 것 같다.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

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 = new StringTokenizer(br.readLine());
		
		List<String> list = new ArrayList<String>();
		
		while(st.hasMoreTokens()) {
			String s = st.nextToken();
			list.add(s);
		}

		bw.write(list.size() + "");
		bw.flush();
		bw.close();
		br.close();

	}

}