STUDY_SEONMIN

1157. 단어 공부 본문

STUDY/Baekjoon Algorithm

1157. 단어 공부

Kululu_ 2021. 7. 6. 14:04

알파벳 대소문자로 된 단어가 주어지면 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않습니다.

 

만약 가장 많이 사용된 알파벳이 여러 개 존재할 경우 ?를 출력합니다.

 

from collections import Counter

S = input()
C = Counter(S.upper())

v = 0
k = ''

for key,value in C.items():
    if value > v:
        k = key
        v = value
    elif value == v:
        k = '?'
        
print(k)

 

 

  • collections 모듈의 Counter 클래스를 사용하면 문자열 안에서 각각의 문자가 몇 번씩 등장했는지를 알 수 있습니다.
    이 클래스로 만든 객체는 마치 딕셔너리처럼 key(문자), value(등장 횟수) 형태로 이루어져있습니다.
  • 문자열 타입에 내장된 upper() 메서드를 이용해 대소문자의 구분을 없앤 상태의 문자열을 활용했습니다.

  • 반복문을 활용해서 이 전까지 문자들의 등장횟수보다 현재 문자의 등장횟수가 더 많으면 해당 문자를 k에 할당함으로서 반복문이 종료되었을 때 가장 많이 등장한 문자가 k라는 변수에 할당되도록 하였습니다.
    단, 가장 많이 등장한 문자가 여러 개면 '?'를 출력해야 하므로 예외처리를 해주었습니다.

'STUDY > Baekjoon Algorithm' 카테고리의 다른 글

2908. 상수  (0) 2021.07.06
1152. 단어의 개수  (0) 2021.07.06
2675. 문자열 반복  (0) 2021.07.05
10809. 알파벳 찾기  (0) 2021.07.05
11720. 숫자의 합  (0) 2021.07.05
Comments