cyphen156
백준-문자열 1152 단어의 개수 본문
공백을 포함한 문자열을 입력받아 몇개의 단어가 존재하는지 구한다.
한번에 한 단어씩 입력받아 개수를 세거나(C)
한번에 모두 입력 받아 문자열 파싱을 통해 처리하거나(C++)
C언어 문자열 입력 함수는 다양하게 존재한다.
- 문자 하나를 입력받는 getchar()
- 공백을 포함, 개행문자 입력 전까지 입력받는 fgets()
- 형식문자열을 입력받는 scanf / scanf_s()
지정한 문자 입력 전까지 모든 문자를 입력받을 수 있는 scanf("%[^지정 문자]")
-> 여러 줄로 이루어진 입력도 처리할 수 있음!
제약사항
- 0 < Sentence <= 1,000,000
주의 사항
scanf는 '\0', '\t', '\n'입력 전까지 문자열을 입력 받는다.
첫 입력으로 공백이 오는경우를 처리해야 한다.
C 풀이
단어의 개수_1152.c
문자 하나씩 입력받아 처리한다. 첫 문자 공백을 제거하기 위해 이전 입력문자 하나를 추적한다.
/**
* 백준 문자열 1152 단어의 개수
* 공백을 포함한 문자열을 입력받아 몇개의 단어가 존재하는지 구한다.
* 한번에 한 단어씩 입력받아 개수를 세거나(C)
* 한번에 모두 입력 받아 문자열 파싱을 통해 처리하거나(C++)
*
*
* 제한사항
*****************************************
* 0 < Sentence <= 1,000,000 *
*****************************************
*
*
*
* 주의
* scanf는 '\0', '\t', '\n'입력 전까지 문자열을 입력 받는다.
* 첫 입력으로 공백이 오는경우를 처리해야 한다.
*
* 풀이시간 10분
*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int cnt = 0;
char ch, oldch = ' ';
while((ch = getchar()) != '\n')
{
if (oldch == ' ' && (ch != ' ' && ch != '\t'))
{
cnt++;
}
oldch = ch;
}
printf("%d\n", cnt);
return 0;
}
C++ 풀이
단어의 개수_1152.cpp
문자열 파싱법
/**
* 백준 문자열 1152 단어의 개수
* 공백을 포함한 문자열을 입력받아 몇개의 단어가 존재하는지 구한다.
* 한번에 한 단어씩 입력받아 개수를 세거나(C)
* 한번에 모두 입력 받아 문자열 파싱을 통해 처리하거나(C++)
*
*
* 제한사항
*****************************************
* 0 < Sentence <= 1,000,000 *
*****************************************
*
*
*
* 주의
* scanf는 '\0', '\t', '\n'입력 전까지 문자열을 입력 받는다.
* 첫 입력으로 공백이 오는경우를 처리해야 한다.
*
* 풀이시간 10분
*/
#include <iostream>
#include <string>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int cnt = 0;
string str;
getline(cin, str);
for (int i = 0; i < str.length(); ++i)
{
if ((i == 0 || str[i-1] == ' ') && str[i] != ' ')
{
++cnt;
}
}
cout << cnt << '\n';
return 0;
}
모든 예제 코드의 소스파일은 제 개인 깃허브 레포지토리 에 있습니다.
Workspace/알고리듬 풀이 at main · cyphen156/Workspace · GitHub
Workspace/알고리듬 풀이 at main · cyphen156/Workspace
Studying . Contribute to cyphen156/Workspace development by creating an account on GitHub.
github.com
'컴퓨터공학 > 알고리듬 풀이' 카테고리의 다른 글
백준-문자열 5622 다이얼 (0) | 2024.09.30 |
---|---|
백준-문자열 2908 상수 (1) | 2024.09.30 |
백준-문자열 2675 문자열 반복 (0) | 2024.09.25 |
백준-문자열 10809 알파벳 찾기 (0) | 2024.09.24 |
백준-문자열 11720 숫자의 합 (0) | 2024.09.24 |