이번 문제의 요지는, 공백으로 구분되어 있는 문장에서 단어의 갯수를 세서 출력하는 문제입니다.
이 문제는 반례가 하나 있는데 그것이 마지막 문장에 나와있다.
"문자열은 공백으로 시작하거나 끝날 수 있다."
이게 포인트 였다. 이 반례를 무시하고 그냥 단어의 개수만 세면 공백으로 시작하거나 끝나는 단어까지 세서 오답이 나오게된다.
먼저 Scanner로 문자열을 입력받는다.
Scanner sc = new Scanner(System.in);
String[] words = sc.nextLine().split(" ");
words 배열에 공백을 구분자로 하여, 단어를 잘라 넣는다.
단어가 몇개인지 세줄 count 변수를 초기화하고 단어를 센다.
for(int i=0; i<words.length; i++) {
if(words[i].equals("")) {
}else {
count++;
}
}
if문에서 words 안에 들어있는 단어중에 공백과 일치하는 단어는 단어가 아니므로, count를 세지 않고, 그렇지 않을때만 단어를 카운트 하도록 하였다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] words = sc.nextLine().split(" ");
int count = 0;
for(int i=0; i<words.length; i++) {
if(words[i].equals("")) {
}else {
count++;
}
}
System.out.println(count);
}
}