반응형
https://www.acmicpc.net/problem/1152
- 문제
해설
문자열의 양끝의 공백을 제외한 (공백의 개수 + 1) = (단어의 개수)이므로 정답을 저장할 변수 res을 1로 초기화한 후
공백이 있을 때마다 res를 1씩 증가시킨다.
단 문자열의 길이가 1이고 공백일 경우를 고려하여 0을 출력한다.
c - 공백을 포함한 문자열 입력받는 방법 : scanf("%[^\n]", 변수);
c++ - 공백을 포함한 문자열 입력 받는 방법 : string 헤더 파일에 포함되어 있는 getline함수를 통해
getline(cin, 변수); 로 공백을 포함한 문자열을 입력받을 수 있다.
코드
c
#include <stdio.h>
#include <string.h>
char s[1000001];
int main() {
int res = 1;
scanf("%[^\n]", s);
if (strlen(s) == 1 && s[0] == ' ') {
printf("0");
return 0;
}
for (int i = 1; i < strlen(s) - 1; i++) {
if (s[i] == ' ') res++;
}
printf("%d", res);
return 0;
}
c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
int res = 1;
getline(cin, s);
if (s.length() == 1 && s[0] == ' ') {
cout << 0;
return 0;
}
for (int i = 1; i < s.length() - 1; i++) {
if (s[i] == ' ') res++;
}
cout << res;
return 0;
}
반응형
'알고리즘 > 백준 문제 풀이' 카테고리의 다른 글
[BOJ/백준] 5622번 다이얼 - [c/c++] 풀이 (0) | 2022.10.19 |
---|---|
[BOJ/백준] 2908번 상수 - [c/c++] 풀이 (1) | 2022.10.18 |
[BOJ/백준] 1157번 단어 공부 - [c/c++] 풀이 (0) | 2022.10.17 |
[BOJ/백준] 2675번 문자열 반복 - [c/c++] 풀이 (1) | 2022.10.15 |
[BOJ/백준] 10809번 알파벳 찾기 - [c/c++] 풀이 (0) | 2022.10.14 |
댓글