문제 - 백준 문제 바로가기
영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다.
이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오.
단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
입력
첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다.
이 문자열의 길이는 1,000,000을 넘지 않는다.
단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다.
또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다.
출력
첫째 줄에 단어의 개수를 출력한다.
시간제한
2초
알고리즘 유형
- 구현
- 문자열
예제입력 1
The Curious Case of Benjamin Button예제출력 1
6예제입력 2
Mazatneunde Wae Teullyeoyo예제출력 2
3예제입력 3
Teullinika Teullyeotzi예제출력 3
2
풀이 1
import java.io.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
go2();
}
public static void go() throws IOException{
BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
BufferedWriter bw = new BufferedWriter( new OutputStreamWriter( System.out ) );
String[] str = br.readLine().split(" ");
int r = 0;
for(String a:str) if(!a.replaceAll(" ", "").equals("")) r++;
bw.write(r+"");
bw.flush();
}
}
풀이 2
import java.io.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
go2();
}
public static void go2() {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String[] arr = str.split(" ");
int result = 0;
for (String s : arr) if(!s.equals("")) result++;
System.out.print(result);
}
}
GitHub 소스는 여기서 확인 가능 합니다.
Baekjoon Algorithm solve JAVA No.1152 단어의 개수