algorithm

[C++] 백준 알고리즘 1152번 (단어의 개수)

Dev:P 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;
}
 

 

 

반응형