반응형
코드
import sys
vowel = {'a','e','i','o','u'}
while (1):
test = sys.stdin.readline().rstrip()
if test == 'end':
break
pw = list(test)
v_flag = 0 # 모음 존재하는지 확인
v_cnt = 0 # 모음 3개 연속인지 확인
c_cnt = 0 # 자음 3개 연속인지 확인
err = 0 # 같은 문자 연속 2개 or 자음/모음 연속 3개인 경우 1
for i in range(len(pw)):
if i > 0:
if pw[i] == pw[i-1]:
if pw[i] != 'e' and pw[i] != 'o':
err = 1
break
if pw[i] in vowel:
v_flag = 1
v_cnt += 1
c_cnt = 0
if v_cnt == 3:
err = 1
break
else:
v_cnt = 0
c_cnt += 1
if c_cnt == 3:
err = 1
break
if (err != 1) and (v_flag == 1):
print("<"+ test +"> is acceptable.")
else:
print("<" + test + "> is not acceptable.")
설명
모음이 들어있는 vowel이라는 딕셔너리를 만들어서 주어진 단어에 모음이 있는지 확인했다.
같은 글자가 연속으로 두 번 오는지는 pw[i] == pw[i-1] 로 이전 글자와 비교를 해줬다.
반응형
'알고리즘 > 문자열' 카테고리의 다른 글
[백준][Python] 9342번 염색체 (0) | 2022.06.28 |
---|---|
[백준][Python]6550번 부분 문자열 (0) | 2022.06.28 |
[백준][Python] 16171번 나는 친구가 적다 (Small) (0) | 2022.06.27 |
[백준][Python] 20053번 최소, 최대 2 (0) | 2022.06.23 |
[백준][Python] 5597번 과제 안 내신 분..? (0) | 2022.06.23 |
댓글