
이 포스팅은 자바 8버전으로 풀이가 됐습니다.
문제
영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
입력
첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다.
출력
첫째 줄에 단어의 개수를 출력한다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
// 1152번 단어의 개수
public class Main {
public static void main(String[] args)throws IOException {
try {
BufferedReader rd = new BufferedReader(new InputStreamReader (System.in));
StringTokenizer s_token = new StringTokenizer(rd.readLine(), " ");
System.out.println(s_token.countTokens());
}
catch(IOException e) {
System.out.println("error");
}
}
}
|
풀이
이 문제는 문자열을 입력받고 공백 단위로 나눠서 단어의 개수를 카운팅 하면 된다.
간단한 문제지만 문법에 대해서 학습하는 것이 목표인 문제라고 생각된다.
BufferedReader를 이용하는 경우 StringTokenizer를 활용하여 개수를 카운팅 한다.
오타나 문제가 있는 경우 댓글 부탁드립니다.
다음 포스팅 때 뵙겠습니다.
'백준 - Java' 카테고리의 다른 글
[백준 - 11653][Java] 소인수분해 (0) | 2022.05.24 |
---|---|
[백준 - 10828][Java] 스택 (0) | 2022.05.23 |
[백준 - 2920][Java] 음계 (0) | 2022.05.17 |
[백준 - 1712][Java]손익분기점 (0) | 2022.05.16 |
[백준 - 15596][Java] 정수 N개의 합 (0) | 2022.05.15 |

이 포스팅은 자바 8버전으로 풀이가 됐습니다.
문제
영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
입력
첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다.
출력
첫째 줄에 단어의 개수를 출력한다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
// 1152번 단어의 개수
public class Main {
public static void main(String[] args)throws IOException {
try {
BufferedReader rd = new BufferedReader(new InputStreamReader (System.in));
StringTokenizer s_token = new StringTokenizer(rd.readLine(), " ");
System.out.println(s_token.countTokens());
}
catch(IOException e) {
System.out.println("error");
}
}
}
|
풀이
이 문제는 문자열을 입력받고 공백 단위로 나눠서 단어의 개수를 카운팅 하면 된다.
간단한 문제지만 문법에 대해서 학습하는 것이 목표인 문제라고 생각된다.
BufferedReader를 이용하는 경우 StringTokenizer를 활용하여 개수를 카운팅 한다.
오타나 문제가 있는 경우 댓글 부탁드립니다.
다음 포스팅 때 뵙겠습니다.
'백준 - Java' 카테고리의 다른 글
[백준 - 11653][Java] 소인수분해 (0) | 2022.05.24 |
---|---|
[백준 - 10828][Java] 스택 (0) | 2022.05.23 |
[백준 - 2920][Java] 음계 (0) | 2022.05.17 |
[백준 - 1712][Java]손익분기점 (0) | 2022.05.16 |
[백준 - 15596][Java] 정수 N개의 합 (0) | 2022.05.15 |