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. 문제에서 조건 구현하는 연습 하기
'Algorithm > Implement' 카테고리의 다른 글
20920번 / 영단어 암기는 괴로워 / 문자열 (0) | 2025.01.12 |
---|---|
1764번 / 듣보잡/ 문자열 (0) | 2025.01.10 |
20291번/ 파일정리/ 딕셔너리 (1) | 2025.01.05 |
프로그래머스/ 문자열 압축 (다시) (1) | 2024.12.28 |
프로그래머스/ 모음사전 (0) | 2024.12.28 |