https://www.acmicpc.net/problem/4659
s = 비밀번호를 저장하는 변수
pw = 비밀번호를 리스트로 저장하는 변수
v_flag = 모음이 있는지 판단하는 변수
v_cnt = 연속되는 모음이 몇 개인지 세는 변수
c_cnt = 연속되는 자음이 몇 개인지 세는 변수
=> v_cnt와 c_cnt는 '연속되는' 자/모음 개수를 알아보는 것이기 때문에
만약 모음이 나왔다면 자음 개수 0으로 초기화, 자음이 나왔다면 모음 개수 초기화 해줘야 한다
err = 같은 글자가 연속적으로 두 번 오거나 자음/모음이 3개 연속으로 온 경우 1
import sys
vowel = {'a', 'e', 'i', 'o', 'u'}
while True:
s = sys.stdin.readline().rstrip()
if s == 'end':
break
pw = list(s)
v_flag = 0
v_cnt = 0
c_cnt = 0
err = 0
for i in range(len(pw)):
if i > 0:
# 같은 글자가 연속적으로 두 번 온 경우
if pw[i] == pw[i-1]:
# ee, oo가 아닌 경우는 err에 1을 넣는다
if pw[i] != 'e' and pw[i] != 'o':
err = 1
break
# 만약 모음이라면 v_flag는 1로 바꾸고 v_cnt 값을 1 증가시킨다.
if pw[i] in vowel:
v_flag = 1
v_cnt += 1
c_cnt = 0
# 만약 모음 개수가 3개면 err는 1이다
if v_cnt == 3:
err = 1
break
# 자음인 경우 c_cnt를 1 증가시키고 v_cnt값을 0으로 바꾼다.
else:
c_cnt += 1
v_cnt = 0
# 만약 자음 개수가 3개라면 err에 1을 넣는다.
if c_cnt == 3:
err = 1
break
# 만약 err가 1이 아니고 모음이 있는 단어면 acceptable 출력
if (err != 1) and (v_flag == 1):
print('<', s, '> is acceptable.', sep='')
else:
print('<', s, '> is not acceptable.', sep='')
(+23/5/19)
vowels = ['a', 'e', 'i', 'o', 'u']
while True :
flag = 0
vowel = 0
v_cnt = 0
c_cnt = 0
s = input()
if s == 'end' :
break
for i in range(len(s)) :
if i > 0 :
if s[i] == s[i-1] :
if s[i] != 'e' and s[i] != 'o' :
flag = -1
break
if s[i] in vowels :
vowel = 1
v_cnt += 1
c_cnt = 0
if v_cnt >= 3 :
flag = -1
break
else :
c_cnt += 1
v_cnt = 0
if c_cnt >=3 :
flag = -1
break
if flag == 0 and vowel == 1 :
print('<', s, '> is acceptable.', sep='')
else :
print('<', s, '> is not acceptable.', sep='')