관리 메뉴

솜씨좋은장씨

[BaekJoon] 11091번 : 알파벳 전부 쓰기 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 11091번 : 알파벳 전부 쓰기 (Python)

솜씨좋은장씨 2021. 7. 11. 20:24
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 알파벳 전부 쓰기입니다.

 

11091번: 알파벳 전부 쓰기

팬그램은 26개의 알파벳, a~z를 최소 한번씩 모두 사용한 문장을 말한다. 아마 가장 유명한 문장은 이것일 것이다. "The quick brown fox jumps over the lazy dog." 꿍은 다른 문장들중에 팬그램인 것은 없는지

www.acmicpc.net

Solution

import re

def use_all_alphabet(string, alphabets):
    is_pangram = "pangram"
    
    string = re.sub(r"[^a-z]", '', string.lower())
    
    string = set(string)
    not_uesd_alphabet = alphabets - string
    
    if not_uesd_alphabet != set():
        not_uesd_alphabet = sorted(list(not_uesd_alphabet))
        
        is_pangram = f"missing {''.join(not_uesd_alphabet)}"
        
    return is_pangram

if __name__ == "__main__":
    alphabets = set([chr(i) for i in range(97, 123)])

    for _ in range(int(input())):
        string = input()
        print(use_all_alphabet(string, alphabets))

Solution 풀이

입력받은 문자열을 lower를 활용하여 소문자로 바꾼다음에

정규식을 활용해서 알파벳만 남겨둡니다.

이를 set()으로 만든 다음 기존에 chr로 만들어둔 a부터 z까지 담겨있는 set에서 빼줍니다.

만약 그 결과가 set()일 경우 pangram 그렇지 않을 경우 missing 다음에 남은 알파벳을 정렬한 뒤 붙여 결과를 냅니다.

그럼 끝!

 

SOMJANG/CODINGTEST_PRACTICE

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments