728x90
반응형
백준 1152번: 단어의 개수
알고리즘 분류: 구현, 문자열
파이썬(Python) 풀이
링크: https://www.acmicpc.net/problem/1152
문제
영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
입력
첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다.
출력
첫째 줄에 단어의 개수를 출력한다.
풀이
처음 이 문제를 접했을 때에는 단어 사이의 공백이 있다는 점을 이용하려고 하였다.
>>> 단어의 개수 = 공백의 개수 + 1
하지만, 문제에서 공백으로 시작하거나 끝날 수 있다는 말이 있었기에
입력의 첫번째가 공백이거나 입력의 마지막이 공백인 경우에는 공백의 개수를 1만큼 빼서 진행하려고 하였다.
하지만 그렇게 하면 이런저런 귀찮음이 발생한다.
그래서 나는 파이썬이 제공하는 split()함수를 사용하려고 하였다.
split()함수에 대해서는 추후에 글을 작성할 것이다.
split()함수란, 문자열의 뒤에 위치하며 띄어쓰기와 엔터를 구분자로 설정하여 문자열을 자른다.
따라서 split()함수로 문자열을 단어별로 쪼갠 뒤, len()함수로 개수를 세어주면 된다.
이렇게 코드를 짜면 다음의 결과가 나온다.
728x90
반응형
'🌀 알고리즘(Algorithm) > 백준(문제 풀이)' 카테고리의 다른 글
fflush(stdin)을 쓰지말자... (0) | 2023.12.08 |
---|---|
[파이썬 풀이] 25345번: 루나의 게임 세팅 - 백준 (0) | 2022.08.17 |
[파이썬 풀이] 17202번: 핸드폰 번호 궁합 - 백준 (0) | 2022.07.28 |
[파이썬 풀이] 24039번: 2021은 무엇이 특별할까? - 백준 (0) | 2022.07.19 |
[파이썬 풀이] 2535번: 아시아 정보올림피아드 - 백준 (0) | 2022.07.15 |