티스토리 뷰

Algorithm

[python/백준(boj)] 1157번. 단어 공부

Jingni 징니 2021. 2. 11. 02:38

 

[python/백준(boj)]

1157번. 단어 공부

 

 

1157번: 단어 공부

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

www.acmicpc.net

 


 

 

입력값

알파벳 대소문자로 이루어진 문자열

 

출력값

입력값 문자열에서 제일 많이 사용한 알파벳 (대/소문자 구분 X)

** 여기서 제일 많이 사용한 알파벳이 여러개일 경우 ? 출력

 

풀이

문제 풀면서 쉽게 풀 수 있는 라이브러리나 함수 많이 찾아봤는데

이해가 안가는 것들도 몇개 있어서 모르는 것들은 무작정 복붙해서 쓰지 않고 아는 문법이나 함수 안에서 해결하려고 노력했다.

이중에서도 max(dic, key=dic.get) 이 부분이 잘 이해가 안갔지만, value 값들 중 가장 큰 값을 가지고 있는 key를 반환하는 함수라고 이해했다.

파이썬 되게 만만하게 생각했는데 공부하면 할수록 햇갈리고 어려운 것도 있는 것 같다.

str = input()

# 문자열 전부 대문자로 변경 (대/소문자 구별 없이 같은 결과가 나와야 하므로)
str = str.upper()

# 알파벳 개수 세기
dic = {}
for i in str:
    if i in dic:
        dic[i] += 1
    else:
        dic[i] = 1

# 가장 많이 사용된 알파벳 찾기
max_key = max(dic, key=dic.get)
max_value = dic[max_key]
dic.pop(max_key)

# 가장 많이 사용된 알파벳이 여러 개일 경우 ? 출력
if max_value in dic.values():
    print("?")
else:
    print(max_key)

 

 

채점 결과

 

 

 

댓글
«   2024/09   »
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
Total
Today
Yesterday
공지사항
최근에 올라온 글