www.acmicpc.net/problem/1152

 

1152번: 단어의 개수

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

www.acmicpc.net


문제 해결을 위한 과정

이 문제의 경우 단어와 단어 사이에 공백이 있다는 점을 이용하여 해결을 합니다. 문제의 예시를 보면

The Curious Case of Benjamin Button 공백이 5개가 있습니다. 공백은 단어 사이에 존재하기 때문에 단어는 6개입니다.

그러나 예시 중 시작이 공백으로 시작하는 것이 있습니다. 이를 염두에 두면 단어 뒤에 공백이 존재하는 경우 단어의 개수를 하나 증가시키는 방향으로 해결할 수 있다는 것을 알 수 있습니다.


문제 해결을 위한 팁

문제 해결을 위한 과정을 보면 단어 다음에 공백이 있다면 단어의 개수를 하나 증가시키는 것으로 해결할 수 있다는 것을 알 수 있습니다. 그러나 이렇게 하면 문자열의 가장 마지막 단어의 개수를 셀 수 없게 됩니다. 따라서 단어를 입력받은 후 그 뒤에 공백 문자를 붙여주면 이 문제점을 해결할 수 있습니다.


소스코드

 

1
2
3
4
5
6
7
8
word = input()
word += " "
count = 0
for i in range(len(word)-1):
    if word[i] != " " and word[i+1== " ":
        count += 1
 
print(count)
cs

+ Recent posts