시간 제한 | 메모리 제한 | 제출 | 정답 | 맞은 사람 | 정답 비율 |
2 초 | 128 MB | 101060 | 25055 | 18613 | 25.093% |
문제
영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
입력
첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다.
출력
첫째 줄에 단어의 개수를 출력한다.
풀이
split 함수를 사용한다면 간단한 문제입니다. 우선 공백을 포함한 문자열을 받기 때문에 next()가 아닌 nextLine()으로 받아야 공백을 포함한 문장을 입력받을 수 있습니다. 그리고 앞뒤 공백이 있을 수 있으므로 trim()함수를 이용해서 앞뒤 공백을 제거 후, 공백으로 나눈 N 의 길이를 반환하면 그대로 단어의 개수가 됩니다! ㅇㅅㅇ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public class Bakjoon {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
String N=sc.nextLine().trim();
if(N.isEmpty()) {
System.out.println(0);
}
else {
System.out.println(N.split(" ").length);
}
}
}
|
https://www.acmicpc.net/problem/1152
반응형
'Algorithms > BOJ[Java]' 카테고리의 다른 글
[백준/11399번] ATM [Java] (0) | 2019.12.02 |
---|---|
[백준/2751번] 수 정렬하기 2 [Java] (0) | 2019.12.01 |
[백준/1712번] 손익분기점 [Java] (0) | 2019.12.01 |
[백준/2869번] 달팽이는 올라가고 싶다 [Java] (2) | 2019.12.01 |
[백준/1157번] 단어 공부 [Java] (0) | 2019.12.01 |