백준 1152_단어의 개수.cpp

hello_hidi·2021년 6월 30일
0

baekjoon_C++

목록 보기
1/33
post-thumbnail

소스코드

#include <iostream>
#include <string>
using namespace std;
int main(){
    string s;
    int cnt = 0; //단어의 개수
    getline(cin, s); //getline(cin, str) :공백이 포함된 문자열 입력
    if(s.length() == 1 && s[0] == ' '){
    	cout << 0 << endl;
    	return 0;
    }
    for(int i = 0; i < s.length(); i++){
        if(s[i] == ' '){
            if(i == 0 || i == s.length()-1){
        		continue;
            }
            cnt++;
        }
    }
    cout << cnt+1 << endl;
    return 0;
}
  1. 변수
    string s : 입력받을 문자열
    int cnt : 단어의 개수
  1. 알고리즘
    1. 공백이 포함된 문자열을 입력받기 위해서 getline(cin,s)를 사용해서 입력을 받는다.
    2. 입력받은 문자열이 공백으로만 이루어진 (' ')의 모습이면 단어가 없기 때문에 제외해준다.
    3. 공백을 만나면 가장 처음 공백과 마지막 공백이 아닌 경우에 단어의 개수를 늘려준다.
    4. 마지막 공백 다음에 나오는 단어의 개수를 더해주어야 함으로 cnt+1을 출력한다.
  1. 배운점
    getline(cin,s) : 공백이 포함된 문자열을 입력받을 때 사용
  1. 아쉬운점&느낀점
    알고리즘을 짜는 부분자체는 쉬웠지만 반례를 찾는 고민을 더 해봤으면 좋겠다! 나중에는 반례도 직접 찾아서 풀 수 있도록! 반례를 가장 쉽게 찾는 방법은 최대한 다양한 테스트케이스를 시험해보는 수 밖에 없다. 그 과정을 귀찮게 생각하지 않고 반례를 직접 찾아 해결하면 실력도 성취감도 둘 다 상승할 수 있을거 같다!
profile
안뇽희디

0개의 댓글