[백준 1152번 문제, C] 단어의 개수

2023. 4. 2. 20:01·정리 전 게시글/공부 관련

문제

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율

 

2 초 128 MB 302070 95671 76555 32.413%

문제

영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.

입력

첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다.

 


코드

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>    // strlen (문자열 길이 체크용)
#include <ctype.h>    // isspace (공백문자 체크용)

char* trim(char*);

int main() {
	char line[1000000];

    // 입력
	scanf("%[^\n]", line);

    // 문자열 앞, 뒤 공백 제거
    char *line_result = trim(line);

    // trim을 하면 공백을 제거하는데 문자열 길이가 0이면 0 반환
    if (strlen(line_result) == 0) {
        printf("%d\n", 0);
        return 0;
    }
    else {
        // 단어 개수를 저장할 변수
        int answer = 0;

        // 문자열 개수만큼 반복
        for (int i = 0; i < strlen(line_result); i++) {
            // 문자열에서 현재 보고 있는 문자가 공백이면 +1
            if (line_result[i] == ' ') {
                answer++;
            }
        }

        // 공백의 개수를 세었는데 출력은 단어의 개수를 요구하니 +1
        printf("%d\n", answer + 1);
        return 0;
    }
}


char* trim(char* str) {
    // 문자열의 앞쪽 공백 제거
    while (isspace(*str)) {
        str++;
    }

    // 문자열의 뒤쪽 공백 제거
    int len = strlen(str);
    while (len > 0 && isspace(str[len - 1])) {
        str[--len] = '\0';
    }

    return str;
}

해결

앞, 뒤 공백을 제거하고 문장의 중간에 있는 공백의 개수를 센다


참고

링크

 

 

 

저작자표시 (새창열림)

'정리 전 게시글 > 공부 관련' 카테고리의 다른 글

[운영체제 학습 노트] 운영체제와 커널의 자원 독점 관리, 자원 접근의 문제점  (0) 2023.05.01
[백준 1181번 문제, python] 단어 정렬  (0) 2023.04.07
[백준 1969번 문제, Python3] DNA  (0) 2023.03.29
BFS, DFS, 최선우선탐색, 휴리스틱 알고리즘, a* 알고리즘 3X3 8퍼즐 공부  (0) 2023.03.26
[백준 1485번 문제, Python3] 정사각형  (0) 2023.03.25
'정리 전 게시글/공부 관련' 카테고리의 다른 글
  • [운영체제 학습 노트] 운영체제와 커널의 자원 독점 관리, 자원 접근의 문제점
  • [백준 1181번 문제, python] 단어 정렬
  • [백준 1969번 문제, Python3] DNA
  • BFS, DFS, 최선우선탐색, 휴리스틱 알고리즘, a* 알고리즘 3X3 8퍼즐 공부
aptenia
aptenia
공부하면서 배운 것들
  • aptenia
    새벽의 아이디어
    aptenia
  • 전체
    오늘
    어제
    • 분류 전체보기 (277) N
      • f1tenth (2)
      • 개발 관련 아무거나 (1) N
      • 정리 전 게시글 (268)
        • 개발 관련 (25)
        • 정보 관련 (19)
        • 공부 관련 (224)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 네이버 블로그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    안드로이드
    백준
    마인크래프트강화스크립트
    컨텍스트스위칭
    빅데이터공모전
    C언어강좌
    티스토리HTML
    마인크래프트
    콜라츠추측
    프로그래머스
    자바
    마크스크립트
    반복하지않는수
    파이썬
    마크
    C언어
    C++강좌
    스크롤바CSS
    이것이자바다연습문제
    일본규슈공업대학교
    이것이자바다확인문제
    이것이자바다
    파이어베이스
    c언어초보
    티스토리스킨편집
    티스토리반응형2스킨편집
    캡스톤디자인
    공개SW개발자대회
    마인크래프트스크립트
    프로그래머스PCCE
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
aptenia
[백준 1152번 문제, C] 단어의 개수
상단으로

티스토리툴바