본문 바로가기

알고리즘/백준

[python 파이썬] 백준 1157번: 단어 공부

반응형

https://www.acmicpc.net/problem/1157

 

1157번: 단어 공부

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

www.acmicpc.net

 

 

S=input().upper()

alphabet=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
arr=sorted(set(S))
count=[0 for i in range(len(arr))]

for i in range(len(arr)):
    for j in range(len(S)):
        if arr[i]==S[j]:
            count[i]+=1

answer=max(count)
temp=0

for i in range(len(count)):    
    if answer==count[i]:
        temp+=1

if temp>1:
    print('?')
else:
    answer=count.index(answer)
    print(arr[answer])

 

 

입력받은 문자열 S을 대문자로 바꾼 후 중복을 제거하고, 중복을 제거한 요소의 개수를 저장할 배열 count를 만들어 S에서 각 요소의 숫자를 저장했다.

그리고 가장 많이 사용된 횟수의 중복을 검사하여 중복이 없을시 그 알파벳을 출력하였다.

반응형