백준 1152번
https://www.acmicpc.net/problem/1152
1. 문제
영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
2. 내가 작성한 알고리즘
#include <stdio.h>
#include <string.h>
#pragma warning (disable:4996)
int main()
{
char input[1000000];
int i;
int count = 0;
scanf("%[^\n]",input);
printf("%d", strlen(input));
for (i = 0; i <= strlen(input); i++) {
if (input[i] == ' ')
count += 1;
}
if (input[0] == ' ')
count -= 1;
if (input[strlen(input)-1] == ' ')
count -= 1;
printf("%d", count + 1);
return 0;
}
3. 이번 알고리즘을 통해 배운 점
"%[^\n]"을 이용하여 문자열을 입력받았다. 이 형식은 \n을 제외한 모든 값을 저장한다는 뜻이다.
그리하여 공백까지 포함하여 입력받은 값들을 활용하여 문제를 풀어나갈 수 있다.
'C > 백준 알고리즘 (c언어)' 카테고리의 다른 글
문자열 practice 02_단어 공부 (0) | 2021.07.07 |
---|---|
문자열 practice 01_ 알파벳 찾기 (0) | 2021.07.06 |
함수 practice 02_한수 (0) | 2021.07.01 |
함수 practice 01_셀프 넘버 (0) | 2021.07.01 |
1차원배열 practice 03_OX퀴즈 (0) | 2021.06.30 |