Java/Programmers 코테 풀이
[백준]1152번 단어의 개수 구하기
Yim_Ha_Eun
2024. 9. 21. 23:13

** 정답은 맨 아래에있습니다.
split으로 코드를 짰더니
import java.io.*;
public class Main {
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().split(" ");//공백으로 나누기
System.out.println(input.length);
br.close();
}
}

맨 앞의 공백을 읽어서 6개의 단어가아니라 7개로 읽고있다.
import java.io.*;
public class Main {
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().trim().split(" ");//공백으로 나누기
System.out.println(input.length);
}
br.close();
}
}
.trim()을 넣어서 해결됐나싶었는데 (앞뒤로 공백 제거)
공백하나만 넣으면 1로 출력되는 반례가 있었다.
그래서 최종코드는 아래와 같다.
import java.io.*;
public class Main {
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().trim().split(" ");//공백으로 나누기
if(input.length ==1 && input[0].equals("")) { //배열의 길이가 1이면서 그 값이 공백 이라면 0출력
System.out.println(0);
}else {
System.out.println(input.length);
}
br.close();
}
}

내가 이상한건지.. 풀다보면 문제가 불친절하다.
테스트케이스도 부족한거같고
반례까지 생각해내라고 일부러 그러는건가 싶다.
