728x90
풀이)
공백이 연속으로 나오지 않는다는 조건이 있으니까 그냥 '공백의 개수 + 1'이 단어의 개수가 될듯?
일단 이렇게 구현해보자
c++ 코드)
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
int count=0;
getline(cin,str);
for(int i=0;i<str.length();i++)
{
if(str[i]==' ')
{
count++;
}
}
if(str[0]==' ') count--; //맨 처음이 공백인 경우 -1
if(str[str.length()-1]==' ') count--; //맨 마지막이 공백인 경우 -1
count++; //단어 개수=공백 개수+1
cout<<count;
return 0;
}
야아 이것좀 봐라
오류처리 2번 안했는데 정직하게 2번 틀림ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
여기서 어처구니 없는 고비가 3개가 있었따
1. 공백 포함 문자열 입력받기
string str;
getline(cin, str)
getline으로 str 입력 받으면 된다~
2. 문자열의 맨 앞과 문자열의 맨 뒤가 공백인 경우
나는 공백의 개수+1 로 단어의 개수를 세려고 했으니 맨 앞과 맨 뒤가 공백인 경우는 개수를 뺴줘야 함
그래서 공백의 개수 구하고 앞에 하나, 뒤에 하나 뺴줬당!
오늘은 시험기간이니까 여기까쥐,,,ㅜ
728x90
'코딩테스트 > BOJ' 카테고리의 다른 글
2750번 수 정렬하기 (0) | 2021.12.14 |
---|---|
1157번 단어 공부 (0) | 2021.12.12 |
DP > 이친수 (2193번) (0) | 2021.09.05 |
DP > 오르막 수 (11057번) (0) | 2021.09.04 |
DP > 쉬운 계단 수 (10844번) (0) | 2021.09.04 |
댓글