일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- HUFS 모각코 캠프
- Python
- 백준 1987
- 백준
- 깃헙
- 알고리즘
- ubuntu
- SQL
- 모각코
- 백준 15787번
- 백준 17451번
- AWS
- 다이나믹프로그래밍
- javascript
- SWEA 15612번
- react
- 다이나믹 프로그래밍
- 백준 3085번
- 백준 18310번
- 머신러닝과 딥러닝
- MySQL
- 자바
- 명품자바
- 그래프
- 백준 1331번
- 그리디
- 백준 2512번
- java_programming
- 백준 16918번
- 백준 1253번
Archives
- Today
- Total
차곡차곡
[BOJ/Python] 백준 13022번 - 늑대와 올바른 단어 본문
백준 #13022 늑대와 올바른 단어
import sys
input = sys.stdin.readline
word = input().strip()
now = 0 # 현재 문자 인덱스
next = 1 # w: 1, o: 2, l: 3, f: 4
cnt = 0
cnt2 = 0
while now < len(word):
if word[now] == "w":
if next == 1:
while now < len(word) and word[now] == "w":
cnt += 1
now += 1
next = 2
else:
print(0)
exit()
elif word[now] == "o":
if next == 2:
while now < len(word) and word[now] == "o":
cnt2 += 1
now += 1
if cnt == cnt2:
next = 3
cnt2 = 0 # 초기화
else:
print(0)
exit()
else:
print(0)
exit()
elif word[now] == "l":
if next == 3:
while now < len(word) and word[now] == "l":
cnt2 += 1
now += 1
if cnt == cnt2:
next = 4
cnt2 = 0 # 초기화
else:
print(0)
exit()
else:
print(0)
exit()
elif word[now] == "f":
if next == 4:
while now < len(word) and word[now] == "f":
cnt2 += 1
now += 1
if cnt == cnt2:
next = 1
cnt, cnt2 = 0, 0 # 초기화
else:
print(0)
exit()
else:
print(0)
exit()
else:
print(0)
exit()
if next != 1: # 단어가 f로 끝나지 않은 경우
print(0)
else:
print(1)
- w의 개수를 세고 이후 o, l, f의 개수가 같은지 비교한다. 하나라도 같지 않으면 올바르지 않은 단어로 0을 출력하고 종료한다.
- w, o, l, f가 순서대로 위치해 있는지 next 변수로 확인한다.
- 마지막에 next가 1이 아닌 경우 단어가 f로 끝나지 않은 것을 의미한다. 따라서 올바르지 않은 단어로 0을 출력하고 종료한다.
코드 너무 더럽다 😰
☝🏻 주의 예제
wolfwo
>> 0
'CS > Algorithm' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰] 11장 해시 테이블 (2) | 2022.07.08 |
---|---|
[BOJ/Python] 백준 18115번 - 카드 놓기 (0) | 2022.07.01 |
[BOJ/Python] 백준 12789번 - 도키도키 간식드리미 (0) | 2022.07.01 |
[BOJ/Python] 백준 17827번 - 달팽이 리스트 (0) | 2022.05.19 |
[BOJ/Python] 백준 11866번 - 요세푸스 문제0 (0) | 2022.05.18 |
Comments