문제풀이/BOJ

[Python] BOJ/백준 4659번 비밀번호 발음하기

서채리 2021. 7. 20. 21:46

[문제]

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

 

4659번: 비밀번호 발음하기

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

www.acmicpc.net



[풀이]

한번에 맞아서 기분이 너무 좋았다 ㅎㅎ 스프링으로 받았던 스트레스 5%정도는 풀린 기분..

풀이는 주석에 달아놓았다.

 


[코드]

if __name__ == '__main__':
    while True:
        password = input()
        if password == "end":
            break
        vowels = "aeiou"
        
        vowel_cnt = 0
        vowel_repeat, consonant_repeat = 0, 0
        temp = ''
        flag = True
        for i in password:
            if i in vowels:     # i가 모음일 경우
                consonant_repeat = 0
                vowel_cnt += 1
                vowel_repeat += 1
                if vowel_repeat >= 3:   # 모음이 3개 연속일 경우
                    flag = False
                if temp == i:   # 같은 글자가 연속 두번일 경우
                    if i == 'e' or i == 'o':    # 'ee'와 'oo'는 허용
                        pass
                    else:
                        flag = False
            else:   # i가 자음일 경우
                vowel_repeat = 0
                consonant_repeat += 1
                if consonant_repeat >= 3:   # 자음이 3개 연속일 경우
                    flag = False
                if temp == i:   # 같은 글자가 연속 두번일 경우
                    flag = False
            temp = i    # 현재 글자를 담아 다음 글자와 비교

        if vowel_cnt < 1:   # 모음이 1개 이하일 경우
           flag = False

        if flag:
            print("<%s> is acceptable." % password)
        else:
            print("<%s> is not acceptable." % password)