[python] 백준 1152 : 단어의 개수

728x90

https://www.acmicpc.net/problem/1152

 

1152번: 단어의 개수

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

www.acmicpc.net

문자열에서 단어는 공백으로 구분된다. 

따라서 문자열 안에 있는 공백의 개수를 세거나, 문자열을 단어 단위로 나눠서 그 개수를 세는 방법으로 풀이가 가능하다.

 

1. 단어 단위로 나눠서 개수를 세는 방법

import sys
s = sys.stdin.readline().split()
sum = 0
for i in s:
    sum += 1
print(sum)

 

1 : s에 문자열을 입력 받고 공백을 기준으로 나눈다.

The Curious Case of Benjamin Button이라는 문자열을 입력하면

['The', 'Curious', 'Case', 'of', 'Benjamin', 'Button']으로 분리된다.

2 : 반복문으로 각 원소에 접근하면서 sum에 1의값을 더해주는 방식으로 문자열 내의 단어 개수를 센다.

 

2. 공백의 개수를 세는 방법

s=input().strip()
print(s.count(" ")+1 if len(s) else 0)

strip()함수는 문자열의 앞 뒤 공백을 제거한다. 

맨 앞에 공백이 포함되어 있는 경우에도 공백의 개수를 정확하게 셀 수 있도록 한다.

문자열 내의 공백의 개수 + 1은 문자열 내의 단어의 개수와 같다.

len함수를 이용하여 입력받은 문자열의 길이가 0일때 0을 출력할 수 있도록 한다.

728x90