728x90
1. 문제
https://www.acmicpc.net/problem/1152
1152번: 단어의 개수
첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열
www.acmicpc.net
2. 접근
' ' 단위로 구분해 배열에 입력받는다.
문자열의 첫번째 혹은 마지막에 공백이 있는지 확인한다.
3. 문제풀이
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
char a[1000005];
int main() {
int ans = 0;
scanf("%[^\n]s", a); // 공백이 나올 때까지 입력받음
if (a[0] != ' ') // 문자열의 첫번째가 공백이 아닌 경우
ans++;
for (int i = 1; i < strlen(a); i++)
if (a[i - 1] == ' ' && a[i] != ' ') // 연속적인 공백이 아닌 경우
ans++;
printf("%d", ans);
return 0;
}
4. 알게된 점
scanf로 입력받기
스터디 과제를 하던 중 알게 된 것을 정리했다. scanf로 문자열을 입력받는 방법들이다. ⓐ 일반적인 입력 char str[100] scanf("%s", &str); 👉 str에 공백 혹은 엔터가 있을 때까지 입력받기 ⓑ 공백을 포
2nnsv.tistory.com
728x90
'PS > BOJ' 카테고리의 다른 글
[C] 백준 5622 : 다이얼 (0) | 2022.05.24 |
---|---|
[C] 백준 2908 : 상수 (0) | 2022.05.24 |
[C] 백준 1978 : 소수찾기 (0) | 2022.05.20 |
[C] 백준 14681 : 사분면 고르기 (0) | 2022.05.16 |
[C] 백준 2753 : 윤년 (0) | 2022.05.16 |