728x90
https://www.acmicpc.net/problem/4659
24/01/13
살짝 구현량이 있는 구현 문제이지만, 문제에서 요구하는 것을 그대로 구현하면 쉽게 해결할 수 있는 문제다.
문제 접근 방식:
문제에서 요구하는 세 가지 조건을 판단해야 한다.
첫번째, 모음을 포함하고 있을 것.
두 번째, 모음 3개 또는 자음 3개가 연속으로 오면 안 될 것.
세 번째, 같은 글자가 연속으로 두 번 오면 안 될 것, 다만 'ee'나 'oo'는 예외다.
이 세 가지 조건을 판단하는 judge함수를 구현했다.
답을 출력할 때 주의해야 할 점은 마침표를 적어야 한다는 점. 이건 예제 입출력을 복붙하면 될 것 같다.
아래는 내가 위의 접근 방식과 같이 작성한 파이썬 코드이다. 더 보기를 누르면 확인할 수 있다.
더보기
# 4659번 비밀번호 발음하기
# 구현, 문자열
import sys
input = sys.stdin.readline
def judge(string):
vowels = ['a', 'e', 'i', 'o', 'u']
for vowel in vowels:
if vowel in string:
break
else:
return False
for i in range(len(string)-2):
a, b, c = string[i], string[i+1], string[i+2]
if (a in vowels) and (b in vowels) and (c in vowels):
return False
if (a not in vowels) and (b not in vowels) and (c not in vowels):
return False
for i in range(len(string)-1):
a, b = string[i], string[i+1]
if a == b and a != 'e' and a != 'o':
return False
return True
while True:
string = input().rstrip()
if string == 'end':
break
if judge(string):
print(f'<{string}> is acceptable.')
else:
print(f'<{string}> is not acceptable.')
'알고리즘 > 백준 문제 풀이' 카테고리의 다른 글
[Python] 1038번 감소하는 수 (0) | 2024.01.23 |
---|---|
[Python] 31229번 또 수열 문제야 (0) | 2024.01.22 |
[Python] 14395번 4연산 (0) | 2024.01.21 |
[Python] 31218번 자료 구조의 왕 (0) | 2024.01.20 |
[Python] 31217번 Y (0) | 2024.01.10 |