[백준 7600] 문자가 몇갤까
Counter 객체를 활용해보는 문제입니다.
Counter 객체는 list나 set, 혹은 문자열 등을 인자로 입력하면
각 요소를 key로 하여 개수를 계산해 dictionary로 반환합니다.
사용할 때에는 collections 모듈에서 Counter를 import하여 사용합니다.
다음의 예시를 봅시다.
>>>from collections import Counter
>>>a = [1,1,1,2,2,3,4]
>>>b = Counter(a)
>>>b
Counter({1: 3, 2: 2, 3: 1, 4: 1})
따라서 while True를 사용한 무한 루프와 try except 문을 사용한 예외 처리로
‘#’이 입력될 때까지 계속해서 문장을 입력받으며
대소문자는 하나의 문자로 처리한다는 조건에 의해 lower() 함수로 전부 소문자로 만들어줍니다.
그 후 Counter 객체로 만들면 각 문자당 개수가 키-값 쌍(key-value pair)으로 이루어진 딕셔너리를 얻을 수 있는데
keys() 함수로 key들을 살펴보며 isalpha() 함수로 알파벳인지를 판단한 다음
맞으면 하나씩 세면 됩니다.
이러한 과정이 모두 끝나고 도출되는 값이
문장에 포함되어 있는 알파벳의 종류, 즉 개수를 의미합니다.
문제 : 백준 7600 - 문자가 몇갤까