string = input().upper() # 마지막에 대문자 출력을 위해 미리 변환
word_dict = {} # 빈 dictionary 생성
value = 0 # 초기화한 value 값 생성
for word in string:
if word in word_dict:
word_dict[word] += 1 # dictionary에 저장된 문자는 value++ 해주고
else: # 없는 값은 key값을 저장하면서 value++
word_dict[word] = value + 1
max_count = max(word_dict.values()) # value값이 가장 큰 문자들 찾기
max_word = []
for key,value in word_dict.items(): # max_count에 저장된 key, value 찾기
if value == max_count: # max_count와 value값이 같다면
max_word.append(key) # key값을 max_word에 저장
if len(max_word) != 1: # 동일한 value 값을 가진 문자가 있으면
print('?')
else: # 유일한 최빈값을 가진 문자라면
print(max_word.pop())
from sys import stdin # stdin.readlind() 사용을 위한 import
from collections import Counter # Counter() 사용을 위한 import
word = stdin.readline().strip().upper() # 문자열 입력받기
most_word = Counter(word).most_common(2)
# Counter함수안에 입력받은 변수를 넣고
# most_common()함수를 사용해 가장 많이 입력된 문자 2개를 찾는다
if len(most_word) >= 2: # 가장 많이 나온 문자가 1개일때를 대비한 예외처리
first_word = most_word[0]
second_word = most_word[1]
# most_common() 함수를 사용하면 [('문자': 개수)] 로 되어있기 때문에 문자를 먼저 저장
if first_word[1] == second_word[1]: # 가장 많이 나온 문자가 1개가 아니므로 '?' 출력
print('?')
else:
print(first_word[0]) # 가장 많이 나온 문자 출력
else:
print(most_word[0][0]) # most_word에 저장된 값이 1일때 출력
import sys
를 해주어야 사용 가능. 개행문자가 함께 저장되기 때문에 제거해주어야하고, input()과 마찬가지고 문자열로 저장되기때문에 정수로 사용하고 싶다면 형변환이 필요하다python에서 제공해주는 class. from collections import Counter
를 해주면 간단하게 문자의 개수를 알수있다. 출력될때는 Counter({'문자' : 개수}) 형태로 출력된다
우리팀은 가장 인원수가 많은 5명이 한팀으로 이루어져있는데, 같은 문제를 5명이 풀면 방법이 5가지가 나오는 신기한 경험을 하게되었다. 정말 사람들은 다 생각이 다르구나 라는걸 느꼈다. 나는 문제를 보자마자 dictionary를 생각했는데 다른 팀원은 강의에서 본 방법을 사용하기도 하고, 또 다른 팀원은 직접 구글링하여 Counter 함수를 사용하기도 했다. 다른 팀원들의 풀이를 내 방식대로 변형해보기도 하면서 새로운 지식을 많이 쌓게되는 기회가 되어서 기쁘다. 다른 팀원의 아이디어를 차용하여 나도 Counter를 사용해보았고 그 덕에 새로운 class를 알게되었다. (dictionary를 사용한 내 첫 풀이보다 Counter를 사용하니까 속도가 더 개선되었다)
다들 매우 열심히 해서 나도 많이 자극받고 같이 열심히 하게되고 서로에게 긍정적인 영향을 주는것 같다는 생각이 든다. 남은기간동안 서로에게 작지만 큰 도움이 되는 관계가 되면 더할나위없이 기쁠것 같다.