Python/백준 알고리즘

[BaekJoon/Python] : 백준 1152번 - 단어의 개수

우준세 2021. 1. 11. 20:11
728x90
반응형

 

 

 

이번 포스팅은 www.acmicpc.net/problem/1152에서 푼 것을 토대로 작성했습니다.

문자열의 여섯 번째 문제인 단어의 개수입니다.

 

문제

 

문제 해석

 

1. 영어 대소문자와 띄어쓰기로 이루어진 문자열을 입력받는다.

2. 공백으로 구분하여 단어의 개수를 출력한다.

3. 단어 맨 앞과 맨 뒤에 공백이 가능하다.


Python 코드

s = input()

lst = list(s)


if s == " ":
    print(0)
    
elif lst[0] == " "  :
    
    if lst[len(lst)-1] == " ":
        print(lst.count(' ')-1)
   
    else:
        print(lst.count(' '))
    
elif lst[len(lst)-1] == " ":
    print(lst.count(' '))
    
else :
    print(lst.count(' ')+1)

Python 코드 풀이

경우의 수를 생각하여 그에 맞게 코딩을 하였습니다. 

 

 

1. 공백만 입력받았을 때 

if s == " ":
    print(0)

 

2. 맨 앞에 공백을 입력하고 단어를 입력받았을 때 

& 맨 앞과 맨 뒤가 공백 일 때 

elif lst[0] == " "  :
    
    if lst[len(lst)-1] == " ":
        print(lst.count(' ')-1)
   
    else:
        print(lst.count(' '))

 

3. 맨 뒤 문자열이 공백 일 때 

elif lst[len(lst)-1] == " ":
    print(lst.count(' '))

 

4. 정상적으로 문자열을 입력했을 때

else :
    print(lst.count(' ')+1)

 

이렇게 네 단계로 구분하여 코딩을 해서 풀었습니다.

그 뒤 다른 분들은 어떻게 풀었을까 보는데 굉장히 쉬운 문제였습니다..

 

찾아본 다른 풀이

a=input().split()
print(len(a))

 

split()과 len()을 이용하여 아주 간단히 푼 것을 보고 현타 왔습니다..ㅠㅠ 

 

 

한눈에 봐도 차이나는 코드 길이와 시간.. 

다음에는 더 쉽게 풀어야 할 것 같습니다

 

 

다음 포스팅으로 찾아오겠습니다 :(

 

 

 

728x90
반응형