algorithm
[C++] 백준 알고리즘 1152번 (단어의 개수)
TechBy
2019. 1. 20. 13:23
반응형
문제
이번에 다뤄볼 문제는 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;
}
반응형