반응형
문제
이번에 다뤄볼 문제는 1152번 문제 '단어의 개수'입니다.
문장을 입력받고 문장이 끝나는 부분까지의 개수(문자+띄어쓰기)를 구해낸 다음
for문을 돌며 띄어쓰기가 발견될때 num값을 증가시켜줍니다.
만약 문장의 끝 혹은 시작에서 띄어쓰기가 포함되어 있다면 num을 하나 빼줍니다.
마지막에서 띄어쓰기만 입력되었을 경우를 예외처리 해주면 마무리가 됩니다.
아래 해답 코드를 보면 더 쉽게 이해할 수 있으실 겁니다.
코드(C++)
#include<iostream>
#include<string>
using namespace std;
int main() {
char arr[1000001];
int count = 0, num = 0;
cin.getline(arr, 1000001);
while (arr[count] != '\0') count++;
for (int i = 0; i <= count; i++) {
if(arr[i] == ' ') num++;
}
if (arr[count-1] == ' ') num--;
else if (arr[0] == ' ') num--;
if (count-1 == num) cout << 0 << endl;
else cout << num+1 << endl;
return 0;
}
반응형
'algorithm' 카테고리의 다른 글
[C++] 백준 알고리즘 4963번 (섬의 개수) (0) | 2021.08.04 |
---|---|
[C++] 백준 알고리즘 2178번 (미로 탐색) (0) | 2021.08.03 |
[C++] 백준 알고리즘 1913번 (달팽이) (0) | 2019.01.20 |
[C++] 백준 알고리즘 10799번 (쇠막대기) (0) | 2019.01.20 |
[C++] 백준 알고리즘 9012번 (괄호) (0) | 2019.01.20 |