Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

행복한 개구리

백준 21.10.26. 1157 - 단어 공부 본문

Algorithm/BaekJoon

백준 21.10.26. 1157 - 단어 공부

HappyFrog 2021. 10. 26. 21:55

word = input()
word = word.lower()

alphabets = list(set(word))

cntList = []
for i in alphabets:
    cnt = word.count(i)
    cntList.append(cnt)

if cntList.count(max(cntList)) > 1:
    print("?")
else:
    letter = alphabets[cntList.index(max(cntList))]
    print(letter.upper())

대소문자 구분을 안한다고 해서 문자열을 받자마자 소문자로 변환해주었다.

그 이후 중복되는 글자들을 걸러내기 위해서 word를 우선 set형식으로 바꿔주고 그 이후에 list로 만들어주었다.

 

이후 각 글자마다 중복되는 개수가 얼마인지 알아내기 우해서 cntList라는 리스트를 하나 더 만들어 alphabets의 인덱스와 평행하게 중복되는 개수들로 요소를 채워준다.(C# 자료구조할때 배웠던 그래프와 비슷)

 

이후 cntList의 가장 큰 숫자가 두개 이상이라면 ?를 출력하도록 하고 그렇지 않다면 해당 인덱스를 찾아 alphabets에 대입한 후 반환된 요소를 upper()메서드로 대문자화 시켜주어 출력한다.