728x90
반응형
문제링크 : https://www.acmicpc.net/problem/1157
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
■ 문제
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
■ 입력
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
■ 출력
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
■ 풀이
word = input().upper()
dict_word = {}
for i in list(word):
if i in dict_word:
dict_word[i] += 1
else:
dict_word[i] = 1
max_count = max(dict_word.values())
max_char = []
for char, count in dict_word.items():
if count == max_count:
max_char.append(char)
if len(max_char) > 1:
print("?")
else:
print(max_char[0])
■ 다른 사람 풀이
word = input().upper()
word_list = list(set(word)) # 중복제거
cnt = []
for i in word_list:
cnt.append(word.count(i)) # word에 맞는 개수 세기
if cnt.count(max(cnt)) > 1:
print("?")
else:
print(word_list[(cnt.index(max(cnt)))])
728x90
반응형
'알고리즘(백준, 프로그래머스) > [백준] 알고리즘 (구현)' 카테고리의 다른 글
[백준 11721 / 파이썬(Python) / Bronze Ⅲ] 구현 / 열 개씩 끊어 출력하기 (0) | 2023.05.29 |
---|---|
[백준 2750/ 파이썬(Python) / Bronze Ⅱ] 구현 / 수 정렬하기 (0) | 2023.05.26 |
[백준 1152/ 파이썬(Python) / Bronze Ⅱ] 구현 / 단어의 개수 (0) | 2023.05.25 |
[백준 2577/ 파이썬(Python) / Bronze Ⅱ] 구현 / 숫자의 개수 (0) | 2023.05.24 |
[백준 1110 / 파이썬(Python) / Bronze Ⅰ] 구현 / 더하기 사이클 (0) | 2023.05.20 |