Koala - 12기/기초 알고리즘 스터디
[백준/Python] 5704번: 팬그램
haerr
2023. 9. 19. 15:50
https://www.acmicpc.net/problem/5704
문제
팬그램은 알파벳의 모든 글자들을 사용해서 만든 문장이다. "the quick brown fox jumps over a lazy dog"과 "jackdaws loves my big sphinx of quartz"은 팬그램이다. 문장이 주어졌을 때, 팬그램인지 아닌지를 알아내는 프로그램을 작성하시오.
입력
입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 많아야 200글자로 이루어져 있는 문장이다. 단어는 공백 하나로 구분되어 있다. 또, 단어는 알파벳 소문자로만 이루어져 있다. 입력의 마지막 줄에는 별표(*)가 하나 주어진다.
출력
각 테스트 케이스에 대해서, 입력으로 주어진 문장이 팬그램이라면 'Y', 아니라면 'N'를 출력한다.
소스코드
while True:
input_string = input()
if input_string == "*":
break
else:
alphabet_set = set(input_string)
if " " in alphabet_set:
alphabet_set.remove(" ")
if len(alphabet_set) == 26:
print("Y")
else:
print("N")
문제풀이
1. while True로 무한 루프를 만들어서, '*' 가 입력되었을 경우에만 break하도록 한다.
2. 입력받은 문자열로 set를 만든다.
3. 문자열 중 ' ' (공백)이 포함되어 있을 수 있으므로, 있을 경우 remove로 없애준다.
4. 알파벳의 모든 글자로 만들어진 문자열일 경우, set로 만들었을 때 공백 제외 26개의 요소가 있어야 하므로, len을 사용하여 해당 set의 길이가 26인지 확인하고 그에 따라 'Y'와 'N'을 출력한다.