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
반응형
'Python > 백준 알고리즘' 카테고리의 다른 글
[BaekJoon/Python] : 백준 5622번 - 다이얼 (0) | 2021.01.12 |
---|---|
[BaekJoon/Python] : 백준 2908번 - 상수 (0) | 2021.01.11 |
[BaekJoon/Python] : 백준 1157번 - 단어 공부 (0) | 2021.01.08 |
[BaekJoon/Python] : 백준 2675번 - 문자열 반복 (0) | 2021.01.07 |
[BaekJoon/Python] : 백준 10809번 - 알파벳 찾기 (0) | 2021.01.07 |