본문 바로가기

Algorithm/BaekJoon

[백준 1157] 단어 공부 python

반응형

문제

 

풀이

풀이

소스코드 1

  • 아스키코드를 이용하여 알파벳 순서에 맞는 인덱스에 알파벳의 개수를 카운팅
# 단어 공부
word = input().upper()
cnt = [0] * 26 # 문자별 카운팅할 배열을 생성

for s in word: # 카운팅
    cnt[ord(s)-65] += 1

max_idx = 0 # max값 인덱스 찾기
for i, c in zip(range(26),cnt):
    if c > cnt[max_idx]:
        max_idx = i

# 출력하기
if cnt.count(cnt[max_idx]) > 1:
    print('?')
else:
    print(chr(max_idx+65))

다른 풀이

  • 리스트 인덱스 이용
words = input().upper()
unique_words = list(set(words))  

cnt_list = []
for x in unique_words :
    cnt = words.count(x)
    cnt_list.append(cnt)  

if cnt_list.count(max(cnt_list)) > 1 :  
    print('?')
else :
    max_index = cnt_list.index(max(cnt_list)) 
    print(unique_words[max_index])
반응형