본문 바로가기

알고리즘/python

[python/파이썬] 백준 1157 단어 공부

반응형

[문제 출처]

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

 

1157번: 단어 공부

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

www.acmicpc.net

 

[소스 코드]

빈도를 세야 하기에 딕셔너리가 좋겠다 싶었는데, 오히려 딕셔너리로 풀어서 복잡하게 푼 문제다.

다른 분들의 풀이를 보면 대부분 리스트를 사용했다.

다양한 접근을 생각하도록 노력해야겠다.

#1157

word = input().upper()
result = dict()

for w in word:
  if w in result.keys():
    result[w] += 1
  else:
    result[w] = 1
max = 0
max_k = 'A'
cnt = 1
for k, v in result.items():
  if v > max:
    cnt = 1
    max = v
    max_k = k
  elif v==max:
    cnt += 1
if cnt > 1:
  print("?")
else:
  print(max_k)
반응형