문제/백준

[백준/BOJ] 4659번: 비밀번호 발음하기 (파이썬3/Python3)

개 살구 2021. 7. 8. 23:41

문제

https://www.acmicpc.net/problem/4659 

 

4659번: 비밀번호 발음하기

좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp

www.acmicpc.net


생각

end를 입력받을 때까지 비밀번호의 적합성을 판단한다.

1. 모음이 하나라도 포함되어 있는지 확인

2. 같은 글자가 연속으로 두번 오는지 확인 (ee와 oo는 예외)

3. 모음이 3개 혹은 자음이 3개 연속으로 오는지 확인

 

포함되어 있는지 확인은 in을 활용

해당 문자와 다음 문자가 다른지 확인 (ee, oo는 예외)

 


코드

while True:
  str = input()
  com = "aeiou"
  check1 = 1
  check2 = 0
  if str == "end":
    break;
  for i in str:
    if i in com:
      check1 = 0
  if check1 == 0:
    for i in range(0, len(str)-1):
      if str[i] == str[i+1] and str[i] not in "eo":
        check2 = 1
  for i in range(0, len(str)-2):
    if str[i] in com and str[i+1] in com and str[i+2] in com:
      check2 = 1
    elif str[i] not in com and str[i+1] not in com and str[i+2] not in com:
      check2 = 1
  
  if check1 == 0 and check2 == 0:
    print("<"+str+"> is acceptable.")
  else:
    print("<"+str+"> is not acceptable.")

차라리 함수를 만드는 것이 더욱 가독성이 좋을 것 같다고 생각된다.