문자열을 입력 받고 공백을 기준으로 단어의 개수를 출력하는 문제다. 처음에는 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 |