본문 바로가기
Data Structure & Algorithm/백준

1152번 : 단어의 개수 (String의 split 메소드 주의사항)

by 6cess 2022. 9. 19.

백준 1152번 문제

문자열을 입력 받고 공백을 기준으로 단어의 개수를 출력하는 문제다. 처음에는 String에 trim 메서드와 split 메소드를 활용하면 단순하게 해결되는 문제인 줄 알았다. 하지만 막상 해보니 아니었다. 한참 헤메다가 해결법을 찾아보니 입력이 공백일 경우에도 split 메소드는 1을 리턴해서 일어난 문제였다.. split 메소드는 공백일 경우 "" 로 되어있는 문자열 하나로 취급해서 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;

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)); 
		
		String st = br.readLine();
		
		st = st.trim();
		
		if(st.equals("")){
			bw.write("0");
		} else {
		
			String[] stArr = st.split(" ");
			
			bw.write(stArr.length + "");
		}
		
		bw.flush();
				
		bw.close();
	}
}

'Data Structure & Algorithm > 백준' 카테고리의 다른 글

No2798 블랙잭(브루트포스 알고리즘)  (0) 2022.10.25
백준 2164번 카드2 (Queue)  (0) 2022.10.25
이진 검색 (10816번, 1920번)  (0) 2022.09.29
solved.ac 활용하기  (0) 2022.09.27
1157번 단어 공부  (2) 2022.09.19