[BOJ] 1152 단어의 개수 (Python)

3920 단어 백준백준

코드

import sys
li=list(map(str,sys.stdin.readline().strip()))
cnt=0
i=0
er=0
if len(li)==0: #공백만 입력 받았을 경우
    er=1
while er==0:
    if li[i]==' ':
        i+=1
        if i>=len(li):
            er=1
            break
        continue
    else:
        cnt+=1
        while(li[i]!=' '):
            i+=1
            if i>=len(li):
                er=1
                break

print(cnt)

풀이 및 소감

입력되는 문자열에서 몇 개의 단어가 있는지 수를 구하는 문제였다. 시작과 끝에 공백이 있을 수 있다.

while문 안에서 공백은 넘어가고 글자가 시작되면 카운트를 세서 출력하는 방식으로 코드를 짰다. 예제 입력을 실행 시켰을 때 예제 출력과 똑같이 나와서 제출했더니 런타임 에러가 떴다. 공백 관련 문제로 에러가 뜨는것 같아서 다시 문장의 앞, 뒤, 앞뒤 동시 이렇게 세 경우로 공백을 넣은 입력을 받아 코드를 돌렸는데 작동이 잘만 되길래 뭐가 문제인가 했더니 공백만 입력받는 경우도 있다는것과, 내 코드는 공백만 입력받으면 입력 리스트에 아무것도 담기지 않아서 에러가 뜬다는 것을 알게 되었다. 그래서 공백만 입력 받을 경우에 대해 예외코드를 짰더니 해결되었다.

바로 어제 실버 문제를 풀 수 있게 되면서 이번 문제는 브론즈 문제라고 방심했던것 같다. 자만하지 말고 여러 경우의 수를 대비하면서 문제를 풀어야겠다.

좋은 웹페이지 즐겨찾기