728x90
문제
https://www.acmicpc.net/problem/1152
1152번: 단어의 개수
첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한
www.acmicpc.net
해결
단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다.
→ 단어의 개수 = 단어 사이의 공백 수 + 1
또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다.
→ 자바 trim() 메서드를 이용해 공백을 제거
구현
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String str = sc.nextLine().trim(); // 문자열 앞뒤 공백 제거
int cnt = 0;
int word_cnt = 0;
for (int i = 0; i < str.length(); i++) { // 앞뒤 공백 제거한 문자열의 길이만큼 실행
if (str != null && str.charAt(0) != ' ') { // 단어의 개수가 0인 경우 제외
if (str.charAt(i) == ' ')
cnt++; // 단어 사이의 공백 수 세기
else if (str != null && str.charAt(i) != ' ')
word_cnt = 1; // 입력된 문자열이 있고 공백이 없으면 단어의 개수는 하나
}
}
if (cnt > 0) // 단어 사이의 공백이 존재할 경우, 단어의 개수는 여러 개
word_cnt = cnt + 1; // 단어의 개수 = 단어 사이의 공백 수 + 1
System.out.println(word_cnt);
}
}
|
cs |
결과
728x90
'Algorithm > Beakjoon' 카테고리의 다른 글
[Java] baekjoon 2438 : 별 찍기 - 1 / for문 (0) | 2021.07.23 |
---|---|
[Java] baekjoon 1032 : 명령 프롬프트 / 문자열 (0) | 2021.07.22 |
[Java] baekjoon 10951 : A+B - 4 / while문 (0) | 2021.07.20 |
[Java] baekjoon 1110 : 더하기 사이클 / while문 (0) | 2021.07.19 |
[Java] baekjoon 2753 : 윤년 / if문 (0) | 2021.07.18 |
댓글