반응형

-풀이

alpha = input()
alpha = alpha.upper()

overlap = set()
answer = []
for i in alpha:
  overlap.add(i)
overlap = list(overlap)
for j in range(len(overlap)):
  answer.append([alpha.count(overlap[j]),overlap[j]])

answer = sorted(answer, key=lambda x: -x[0])
try:
  if answer[0][0] == answer[1][0]:
    print('?')
  else:
    print(answer[0][1])
except:
  print(alpha) 

-풀이 설명(느낀 점)

[25분 sol] set함수를 이용하여 중복 값을 제거한 다음에 set에 있는 함수는 사용하질 못해서 리스트로 다시 변환하여 반복문을 돌려서 차례대로 count함수를 이용해 해당 값의 개수를 각각 구해서 answer리스트로 [count, 값] 형식으로 append했다. 그런 다음 count를 내림차순 기준으로 람다함수를 써서 정렬하여 중복값이 가장 많은 값을 맨 앞 인덱스로 오게했다. 

그런 다음 0번 인덱스 count와 1번 인덱스 count가 같으면 ? 를 출력하게 했고, else일 경우 값을 출력하도록 했다. 그런데 글자 수가 한개 일 때가 있어서 오류가 떴다. 그래서 오류가 뜰 경우는 글자 수 한개일 때 밖에 없기 때문에 try except 구문을 이용하여 글자 수가 하나일 때 바로 alpha를 출력하도록 하니까 해결되었다.

+ Recent posts