728x90

1152번: 단어의 개수
첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열
www.acmicpc.net
살펴볼 점
1. 문자열 맨 앞의 공백
2. 문자열 맨 뒤의 공백
3. 공백만 입력
4. 단어 하나만 입력
#include <iostream>
#include <string>
using namespace std;
string input;
int cnt = 1;
int main() {
getline(cin, input); //'\n' 구분을 위해 getline 사용
for (int i = 0; i < input.length(); i++) {
if (input.length() > 1) {
if (input[i] == ' ') {
if (i == 0) {
continue;
} //문자열 맨 앞의 공백 처리
else if (i == input.length() - 1) {
continue;
} //문자열 맨 뒤의 공백 처리
else {
cnt++;
} //정상적인 단어 카운트
}
}
else {
if (input[i] == ' ') {
cnt--;
} //문자열 맨 앞의 공백 처리
else {
cnt = 1; //하나의 단어만 있는 경우
}
} //입력된 문자열의 길이가 1보다 적을 때
}
cout << cnt << "\n";
return 0;
}
728x90
'Algorithm > 백준' 카테고리의 다른 글
[C++] 백준 11718번: 그대로 출력하기 (0) | 2022.02.14 |
---|---|
[C++] 백준 15596번: 정수 N개의 합 (0) | 2022.02.13 |
[C++] 백준 2441번: 별 찍기-4 (0) | 2022.02.13 |
[C++] 백준 2440번: 별 찍기-3 (0) | 2022.02.12 |
[C++] 백준 4344번: 평균은 넘겠지 (0) | 2022.02.09 |
댓글