[BOJ / Python] 1157 단어 공부

도니·2023년 4월 6일
0

BOJ / Python

목록 보기
38/104
post-thumbnail

문제

백준 1157 단어 공부

코드

#BOJ 1157 단어 공부

word = input().upper()
alphabets = list(set(word))

count_alphabets = []
for x in alphabets:
    count = word.count(x)
    count_alphabets.append(count)

max_num = max(count_alphabets)
if count_alphabets.count(max_num) > 1:
    print("?")
else:
    max_index = count_alphabets.index(max_num)
    print(alphabets[max_index])

코드 설명
우선 대소문자를 구분하지 않는다고 하였고, 가장 많이 사용된 알파벳을 대문자로 출력한다고 하였으므로 입력된 모든 알파벳을 대문자로 바꿔준다.

set()함수를 이용하여 입력된 알파벳들의 중복값을 없애준다.

count()함수를 이용하여 입력된 단어에 각각의 알파벳이 몇 번 사용되었는지 세고, count_alphabets 리스트에 그 값을 저장해둔다. 이 때, alphabets[i]에 들어있는 알파벳의 빈도는 count_alphabets[i]에 들어있다.

count_alphabets에 들어있는 값들 중 최댓값, 가장 많이 사용된 알파벳의 빈도수를 구한다. 이때 이 값을 가진 요소가 2개 이상 있으면 가장 많이 사용된 알파벳이 여러 개 존재하는 경우이므로 "?"를 출력한다.

최댓값 max_num을 가진 요소가 하나라면 index()함수를 이용하여 max_num의 인덱스(=max_index)를 찾고, alphabets[max_index]로 가장 많이 사용된 알파벳을 구한다.

profile
안녕하세요, 🌱새싹개발자 도니💡입니다!

0개의 댓글

관련 채용 정보