관리 메뉴

솜씨좋은장씨

[BaekJoon] 5704번 : 팬그램 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 5704번 : 팬그램 (Python)

솜씨좋은장씨 2021. 10. 16. 11:32
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 팬그램입니다.

 

5704번: 팬그램

입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 많아야 200글자로 이루어져 있는 문장이다. 단어는 공백 하나로 구분되어 있다. 또, 단어는 알파벳 소문자로만 이루어져 있다.

www.acmicpc.net

👨🏻‍💻 문제 풀이

a부터 z까지 모든 알파벳을 활용하여 만들어진 문자열을 팬그램 문자열이라고 합니다.

이 문제는 문자열을 하나 입력받으면 팬그램인지 아닌지를 파악하는 문제입니다.

while True:
    string = input()
    if string == "*":
        break

예제입력을 활용하여 입력하는 부분을 먼저 작성합니다.

"*" 이 입력될때까지 계속 입력 받도록 while 반복문 안에 넣어줍니다.

answer = "N"
string = string.replace(" ", "")

기본 정답을 N으로 두고 입력받은 문자열에서 공백을 제거합니다.

from collections import Counter

cnt = Counter(string)

공백을 제거한 문자열을 collections의 Counter를 활용하여 문자열을 이루는 각 알파벳의 개수를 구합니다.

if len(cnt.keys()) == 26:
    answer = "Y"

만약 여기서 카운팅할때 나온 알파벳의 개수가 26개 즉 모든 알파벳을 사용하였는지 확인이 되면

정답을 Y로 바꿉니다.

 

전체 코드는 아래를 참고해주세요.

👨🏻‍💻 코드 ( Solution )

from collections import Counter

def pangram(string):
    answer = "N"
    string = string.replace(" ", "")
    cnt = Counter(string)
    
    if len(cnt.keys()) == 26:
        answer = "Y"
        
    return answer

if __name__ == "__main__":
    while True:
        string = input()
        if string == "*":
            break
            
        print(pangram(string))
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

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

github.com

Comments