백준 문제 1152번 단어의 개수
문제부터 보시죠!
단어의 개수 성공
시간 제한메모리 제한제출정답맞은 사람정답 비율
2 초 | 128 MB | 99245 | 24464 | 18148 | 24.954% |
문제
영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
입력
첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다.
출력
첫째 줄에 단어의 개수를 출력한다.
예제 입력 1 복사
The Curious Case of Benjamin Button
예제 출력 1 복사
6
예제 입력 2 복사
Mazatneunde Wae Teullyeoyo
예제 출력 2 복사
3
예제 입력 3 복사
Teullinika Teullyeotzi
예제 출력 3 복사
2
출처 : https://www.acmicpc.net/problem/1152
1152번: 단어의 개수
첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다.
www.acmicpc.net
제 코드는 다음과 같습니다!
#include <iostream>
#include <string>
using namespace std;
int main() {
int cnt=1;
string a{};
getline(cin,a);
for (int i = 0; i < a.length(); i++) {
if (a[i] == ' ') { // 띄어쓰기가 생기면 단어 +1 해줌
cnt++;
}
}
if (a[0] == ' ') //처음 입력이 공백이면 단어가 아니므로 -1해줌
cnt--;
if (a[a.length() - 1] == ' ') //마지막에 공백으로 끝나면 단어 아니므로 -1해줌
cnt--;
cout << cnt;
return 0;
}
정답률이 높은 문제인 만큼 코드도 짧고 금방 해낼 수 있었습니다!
'Study > Baekjoon & SW Expert Academy' 카테고리의 다른 글
[백준 : 1157번 단어 공부] (4) | 2019.11.05 |
---|---|
[ SW Expert Academy : 1984번 중간 평균값 구하기 ] (2) | 2019.11.02 |
[ SW Expert Academy : 1983번 조교의 성적 매기기 ] (0) | 2019.10.29 |
[백준 : 1149번 RGB거리] (0) | 2019.10.28 |
[ SW Expert Academy: 1926, 1979 ] (0) | 2019.10.27 |