-
백준 Q-인덱스 (13333번) 파이썬Coding Test/Algorithm 2021. 3. 18. 00:35
오늘도 어김없이 문제 설명은 링크로 대체
처음에는 문제 자체를 이해하는데 조금 오래 걸렸다.
"한 학생이 발표한 총 n ≥ 1 편의 논문 중에서, k번 이상 인용된 논문이 k편 이상이고 나머지 n − k 편의 논문들 인용회수가 각각 k 번 이하라면, 해당 학생의 q-인덱스는 k이다."
이 문장을 이해하는 것이 핵심이다.
이 문장대로만 구현하면 된다.
n-k를 집합으로 구현한 점이
import sys def fun(n, arr): for k in range(n, -1, -1): cnt = 0 up = [] # k 이상인 수의 집합 for j in arr: if k <= j: cnt += 1 up.append(j) if k <= cnt: # n - k 조건을 구하기 위한 집합 생성 set_arr = set(arr) set_up = set(up) set_down = set_arr - set_up if len(set_down) <= k: print(k) return print(0) return n = int(sys.stdin.readline()) arr = list(map(int, sys.stdin.readline().split())) fun(n, arr)
'Coding Test > Algorithm' 카테고리의 다른 글
[백준] 소수&팰린드롬 (1747번) 파이썬 (0) 2021.03.20 [백준] 등수 구하기 (1205번) 파이썬 (0) 2021.03.19 프로그래머스 실패율 (파이썬) (0) 2021.03.17 백준 18406 럭키 스트레이트 파이썬 풀이 (0) 2020.12.01 프로그래머스 체육복 문제 파이썬 풀이 (0) 2020.11.30