-풀이
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를 출력하도록 하니까 해결되었다.
'알고리즘' 카테고리의 다른 글
[구현] 백준 5622 파이썬 (다이얼) 브론즈2 (0) | 2021.11.03 |
---|---|
[구현] 백준 2908파이썬 (상수) 브론즈2 (0) | 2021.11.02 |
[구현] 백준 2675 파이썬 (문자열 반복) 브론즈2 (0) | 2021.11.01 |
[구현] 백준 10809파이썬 (알파벳 찾기) 브론즈2 (0) | 2021.11.01 |
[구현] 백준 1065 파이썬 (한수) 실버4 (0) | 2021.11.01 |