https://www.acmicpc.net/problem/1152
1152번: 단어의 개수
첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다.
www.acmicpc.net
더보기
#include<stdio.h>
int main(){
char str[1000000];
int i, count;
scanf("%[^\n]",str);
count = 0;
for(i=1; str[i]!='\0'; i++){ //두번째 문자부터 세기
if(str[i]==' ') count++;
}
if(str[i-1]==' ') count--; //맨 뒤가 공백일 경우 1 빼기
printf("%d",count+1);
return 0;
}
단어를 세는게 아니라 빈칸을 세는 꼼수(?)
앞뒤로 공백이 있을 수 있다고 해서 앞뒤 공백을 안세는 방법을 사용했습니다.
+ 공백에서 문자 잘리는걸 기억해냈다@
'프로그래밍 > 백준' 카테고리의 다른 글
백준 5622번: 다이얼 (C언어) (0) | 2020.03.13 |
---|---|
백준 2908번: 상수 (C언어) (0) | 2020.03.13 |
백준 1157번: 단어 공부 (C언어) (0) | 2020.03.11 |
백준 2675번: 문자열 반복 (C언어) (0) | 2020.03.11 |
백준 10809번: 알파벳 찾기 (C언어) (0) | 2020.03.09 |