코딩일지/python 백준 알고리즘

python 백준 알고리즘 1157번: 단어 공부

야언 2022. 9. 13. 19:26

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

 

1157번: 단어 공부

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

www.acmicpc.net

 

 

내 제출

word = input().upper()  # 대문자로 고정  ex) word = BAAA
word_list = list(set(word))  # 입력받은 문자열에서 중복값을 제거 ex) word_list = ['B', 'A']

cnt_list = []
for x in word_list :  # x = B, A
    cnt = word.count(x)
    cnt_list.append(cnt)  # count 숫자를 리스트에 append ex) cnt_list = [1, 3]

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

 

set 자료형을 이용한 중복값 제거, 반복문 append로 리스트 추가, 조건문 등 지금까지 배운것들을 전부 활용해야하는 문제였다.

 

최대값 위치를 찾는데 index 함수를 이용. 위의 예시의 경우 

word = BAAA

word_list = [B, A]

cnt_list = [1, 3] 

max(cnt_list)값은 3이 되고, index(3) 은 cnt_list[1]에 위치하기때문에 word_list[max_index] = word_list[1] = A