코딩연습장/백준
[백준/Python] 백준 1157번 단어 공부
gayomii
2023. 8. 25. 13:44
🏆백준 1157번 - 단어 공부
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
✍️문제
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
❓정답
word = input().upper() # 대문자로 입력받기
word_list = list(set(word))
cnt = []
for i in word_list:
cnt.append(word.count(i))
if cnt.count(max(cnt)) > 1:
print('?')
else:
print(word_list[cnt.index(max(cnt))]) # cnt가 가장 높은 인덱스의 word_list 추출
💫 해설 및 한줄평
word를 upper()을 통해 대문자로 입력받는다.
그리고 set로 만든 후 list로 구성해줘서 중복된 값이 없는 list로 만들어준다.
이후 word_list를 반복하여 cnt에 각 알파벳별로 몇개가 있는지 count한 수를 넣어준다.
이렇게 되면 다음과 같이 구성된다.word = abbccword_list = ['A', 'B', 'C']
cnt = [1, 2, 2]
그럼 이제 해야할건 cnt에서 가장 높은 수와 그 수를 가지는 인덱스를 word_list에서 출력하는것이다.
이때, max가 두개이상이라면 '?'를 출력해야한다.
따라서 cnt의 최댓값를 count한 후 1개 초과일때 ?를 출력하는 코드를 사용했다.
그 이외에는 cnt에서 max(cnt)의 인덱스값을 구한 후 word_list에 적용하여 출력하도록 하였다.
한참 들여다봤다 .. 갈수록 어려워진다 팟팅구리구리