[백준/파이썬] 1813번 논리학 교수 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 1813번 논리학 교수
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
주어진 수열에서
x라는 수가 정확히 x번 등장하는 경우를 찾고,
가능한 값 중 최댓값을 출력하는 문제입니다.
없으면 -1 또는 0 규칙에 맞게 출력합니다.
코드
m = dict()
input()
for n in map(int, input().split()):
try:m[n] += 1
except: m[n] = 1
answer = list(sorted(filter(lambda t: t[0] == t[1], m.items()), key = lambda x:-x[0]))
if answer: print(answer[0][0])
elif 0 in m.keys(): print(-1)
else: print(0)
설명
빈도 딕셔너리를 만들고
값 == 등장횟수를 만족하는 후보를 필터링해
가장 큰 값을 선택합니다.
댓글남기기