🐸 문제 정보
🤖 알고리즘
구현
⏱️ 풀이 시간
22.01m
📝 풀이
실버 5임에도 구현이라 체감상 실버 2~3으로 느껴졌다.
문제에서 제시한 조건대로 빡구현하는 되는 문제였다.
모음의 경우 딕셔너리로 설저해놔서 시간복잡도를 줄였다.
🧑💻 나의 답
# pypy3
import sys
input = sys.stdin.readline
gather = {'a': True, 'e': True, 'i': True, 'o': True, 'u': True}
while True:
pwd = input().rstrip()
if pwd == 'end': exit()
letters = []
g_check, c_check, s_check = False, True, True
for letter in pwd:
if letter in gather:
g_check = True
if len(letters) < 1:
letters.append(letter)
continue
if (letter == letters[-1]) and not (letter == 'e' or letter == 'o'):
s_check = False
break
if len(letters) < 2:
letters.append(letter)
continue
if (letters[-2] not in gather) and (letters[-1] not in gather) and (letter not in gather):
c_check = False
break
if (letters[-2] in gather) and (letters[-1] in gather) and (letter in gather):
c_check = False
break
letters.append(letter)
if g_check and c_check and s_check:
print(f"<{pwd}> is acceptable.")
else:
print(f"<{pwd}> is not acceptable.")
'PS > 문제풀이' 카테고리의 다른 글
백준 7682 틱택토 Python (0) | 2024.02.02 |
---|---|
백준 17615 볼 모으기 Python (0) | 2024.02.02 |
백준 1806 부분합 Python (2) | 2024.01.28 |
백준 1138 한 줄로 서기 Python (1) | 2024.01.28 |
백준 2075 N번째 큰 수 Python (1) | 2024.01.27 |