https://www.acmicpc.net/problem/1157
# 문제상황
이 문제에서 생각해볼 만한 부분은, '최댓값이 여러 개 존재할 경우'를 처리하는 방법입니다.
파이썬의 내장 함수 중 max() 함수가 있지만, max() 함수는 최댓값이 여러 개 존재할 경우를 따로 처리해주지 못합니다.
어떻게 하면 좋을까요?
# 해결
리스트의 count() 함수를 적절히 사용하여야 합니다. count() 함수는 리스트에서 '특정 요소가 몇 개 들어있는지'를 알려주는 함수인데요, 즉 다음과 같은 순서로 문제를 풀면 됩니다.
1. max() 함수로 최댓값을 알아내기
2. 알아낸 최댓값을 count() 함수에 넣어, 최댓값이 몇 개인지 알아내기
3. 최댓값이 1개라면 리스트는 유일한 최댓값을 가지는 셈이고, 2개 이상이라면 '?'를 출력한다.
# 답
s = input().upper()
unique_s = list(set(s))
cnt = []
for x in unique_s:
tmp = s.count(x)
cnt.append(tmp)
if cnt.count(max(cnt)) > 1:
print('?')
else:
max_idx = cnt.index(max(cnt))
print(unique_s[max_idx])
728x90
반응형
'Algorithm > BaekJoon' 카테고리의 다른 글
(파이썬) 백준 2447번 "별 찍기 - 10" (0) | 2022.04.21 |
---|---|
(파이썬) 백준 1316번 "그룹 단어 체커" (0) | 2022.04.20 |
(파이썬) 백준 11720번 "숫자의 합" (0) | 2022.04.20 |
(파이썬) 백준 4344번 "평균은 넘겠지" (0) | 2022.04.19 |
(파이썬) 백준 2562번 "최댓값" (0) | 2022.04.19 |