[백준 알고리즘] 1152 : 단어의 개수

예시 입력 : 

The Curious Case of Benjamin Button


예시 출력 :

6


문제를 간단히 해석하면 이렇다. 띄어쓰기로 구분된 단어의 갯수를 파악해서 출력하라. 내 생각으로는 굉장히 쉬운문제라 생각했는데 생각보다 정답률이 낮았다(22%) 예전에 같은 생각으로 시도했던 문제였는데 최근에야 다시 풀어보았다. 파이썬으로 풀면 굉장히 간단할 것 같았다.


작성된 파이썬의 문법은 Python 2, 하지만 입력받는 부분을 제외하곤 별 차이가 없다.


1차 시도

mString = raw_input()
mStringSplit = mString.split(' ')
print(len(mStringSplit))

1차엔 가볍게 시도했다. 예시 입력과 같이 입력하면 예시 출력처럼 표시되니 가볍게 제출. 하지만 내 소스코드엔 자연스레 틀렸습니다!가 표시되었고 어리둥절했다.



2차 시도

mString = raw_input()
mString = mString.strip()
mStringSplit = mString.split(' ')
print(len(mStringSplit))

처음 떠올랐던 코드의 문제는 양끝에 공백이 있는 경우를 생각못했다는 것이었다. “에이 바보~”하며 당당히 제출했지만 역시나 틀렸습니다!


살짝 멘붕이었다. 솔직히 말하면 파이썬으로 해결하기 극히 어려운 문제도 아니라는 생각이 들었고, 내가 생각한 문제는 더이상 없었다. 문제의 조건에도 ‘중복되는 띄어쓰기는 없다.’라고 명시되어 있었고...


문제는 ‘공백만 입력된 경우’였다. 공백으로 짤랐으나 공백만 입력된 경우, 공백문자가 포함된 리스트가 생성되었다! 만약 입력자가 공백하나만 입력해도 1이라는 값이 출력된다는 것이었다.



3차 시도

mString = raw_input()
mString = mString.strip()
mStringSplit = mString.split(' ')

mCount = 0;
for i in mStringSplit :
    if len(i) != 0 :
        mCount += 1

print(mCount)


맞았습니다!


하지만 전혀 기쁘지 않다. 포프님의 영상이 생각난다. “함수는 누구나 쓸 수 있게 만들어야 한다.”, “입력값은 예상대로 들어오지 않는다.” 이런실력이면 어림도 없다. 코딩이란건 정말 어렵다. 매일매일 한문제씩 풀어나가며 조금씩 정진해야겠다.



WRITTEN BY

배진오

하고싶은 건 다 하면서 사는게 목표
im@baejino.com

comments powered by Disqus