[Baekjun]4659パスワード発音python


パスワードの朗読


質問する


良いパスワードを作るのは難しい.多くのユーザーは、友達のように発音がよく、記憶しやすいパスワードを望んでいますが、これらのパスワードはセキュリティの問題が発生します.xvtpzyoのようなパスワードをランダムにユーザーに提供するサイトもありますが、ユーザーは覚えにくく、メモに書いてパソコンに貼ることもあります.最も理想的な解決策は、適切に覚えやすく、アカウントを安全に維持できる「発音可能」なパスワードを作成することです.
会社FnordComはそのようなパスワードジェネレータの作成を計画しています.同社の品質管理部門の従業員として、生成されたパスワードの品質をテストし、評価する必要があります.高品質パスワードの条件は以下の通りです.
  • 母音(a,e,i,o,u)を含む必要があります.
  • 母音は3つまたは3つの補助音を連続することはできません.
  • のような字は2回連続して現れることはできませんが、eeとooは許可されています.
  • この規則は不備だ私たちがよく知っている単語や発音しやすい単語の中にも、過小評価されているものがたくさんあります.

    入力


    入力は、複数のテスト・インスタンスから構成されます.
    各テスト・インスタンスは1行で構成され、各行にテストするパスワードがあります.
    最後のテストケースはendであり、passwordは20文字以上の文字列である.また、パスワードには大文字は含まれていません.

    しゅつりょく


    各テストケースの品質は、サンプル出力の形式で評価されます.

    ソリューション

  • 問題の要件は、コードを参照してください.
  • #모음 받아오기 
    lst = ['a','e','i','o','u']
    #모음이 연속되면 안되지만 예외경우 처리 
    accept = ['ee','oo']
    while True :
        x=y=0
        password = input()
        #들어온 값이 end면 그대로 리턴 
        if password == 'end' :
            break
        #카운트 
        cnt = 0
        #모음개수세기 
        for i in lst :
            if i in password :
                cnt +=1 
        #모음이 없으면 부적합 
        if cnt <1 :
            print(f'<{password}> is not acceptable.')
            continue
        #모음만 연속 3개거나 자음만 연속 3개인 경우 체크 
        for i in range(len(password)-2) :
            if password[i] in lst and password[i+1] in lst and password[i+2] in lst :
                x = 1 
            elif not(password[i] in lst) and not(password[i+1]in lst) and not(password[i+2] in lst) :
                x = 1 
        if x == 1 :
            print(f'<{password}> is not acceptable.')
            continue
        #같은 글이 연속 두개인지 체크 하지만 'e'나 'o'면 컨티뉴 
        for i in range(len(password)-1) :
            if password[i]==password[i+1] :
                if password[i] == 'e' or password[i] == 'o' :
                    continue
                else :
                    y = 1 
        if y == 1 :
            print(f'<{password}> is not acceptable.')
            continue
        #예외 케이스를 통과하면 적합 
        print(f'<{password}> is acceptable.')