강의로 돌아가기
최용철

성공할때도 있고 실패할때도있어요

import collections
my_str = input().strip()
answer = collections.Counter(my_str)
MAX = 0
MAX_str = ''
for x , a in answer.items():
    if a >= MAX:
        MAX = a
        MAX_str += x

print(MAX_str)

어디가 문제일까요?

1 개의 답변
Demi

collections.Counter는 dictionary 이기 때문에, 원소의 순서가 보장되지 않습니다.
print(answer.items())으로 프린트를 해보면, 매번 원소 순서가 다른걸 확인하실 수 있을거에요.
작성하신 코드의 로직을 최소한으로 변경해서, 정답으로 인정되는 코드를 하단에 첨부해두었습니다.

확인해보시고, 모르겠는 부분이 있다면 댓글을 달아주세요 :)

import collections
my_str = input().strip()
answer = collections.Counter(my_str)
MAX = 0
MAX_str = ''
for x, a in answer.most_common(): # 여기
    if a >= MAX:
        MAX = a
        MAX_str += x
MAX_str = ''.join(sorted(MAX_str))  # 여기
print(MAX_str)
  • 최용철
    most_common() 은 처음봤네요 감사합니다 최용철 2018.10.11 16:46
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.