Algorithm/Implement
4659번/ 비밀번호/ 문자열 (다시)
정호나
2025. 1. 6. 19:15
https://www.acmicpc.net/problem/4659
# 조건) aeiou 중 1개 반드시 포함,
# 모음이나 자음 3개 연속안돼,
# 같은 글자 2번연속 안돼(ee,oo는 가능)
# 대문자 안돼
# 마지막 테스트 케이스는 end
import sys
def is_acceptable(word):
case =['a','e','i','o','u']
# 조건1: 모음 안에 1개 이상 있어야해
if not any (char in case for char in word):
return False
# 조건2: 같은 글자 2개 연속 안돼
for i in range(len(word)-1):
if word[i] == word[i+1] and word[i:i+2] not in ('ee','oo'):
return False
# 조건3 : 대문자 안돼
if any(char.isupper() for char in word):
return False
# 조건4 : 모음이나 자음 3개 연속 안돼
for i in range(len(word)-2):
if all(char in case for char in word[i:i+3]) or all (char not in case for char in word[i:i+3]):
return False
return True
while True:
word = sys.stdin.readline().rstrip()
if word == 'end':
break
if is_acceptable(word):
print(f"<{word}> is acceptable.")
else:
print(f"<{word}> is not acceptable.")
리뷰
1. 문자열 인덱스 범위넘어가지 않도록 for문에서 범위 설정
2. def -main 형태로 코드짜는 연습
3. 파이썬 출력문 format 익히기
4. 문제에서 조건 구현하는 연습 하기