본문 바로가기

Python/백준

[python/백준] 1157번: 단어 공부

728x90

문제

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

 

1157번: 단어 공부

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

www.acmicpc.net

 

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

첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.

 

⭐ 코드 분석

  • set ( 집합 )
s1 = set([1,2,3])
print(s1)

# result : {1,2,3}

 

가장 많이 나온 문자열 횟수를 카운트 하여 숫자 인덱스 값으로 철자를 찾아 출력

 

⭐ 코드

words = input().upper()
unique_words = list(set(words))  # 입력 받은 문자를 리스트에 저장
cnt_list = []

for x in unique_words:
    cnt = words.count(x)
    cnt_list.append(cnt)  # words 중에서 가장 많이 나온 숫자를 넣음

if cnt_list.count(max(cnt_list)) > 1 :  # count 숫자 최대 값이 중복 되면 ? 출력
    print('?')
else:
    max_index = cnt_list.index(max(cnt_list))  # count 숫자 최대값 인덱스(위치)
    print(unique_words[max_index])