안녕하세요 !
https://programmers.co.kr/learn/courses/30/lessons/42747/
풀이
처음에 풀때는 citations 에 있는 값으로만 for in 해서 돌렸는데
그렇게 하면 답이 안나옵니다.예를 들어, citations = [10, 9, 4, 1, 1] 인 경우에는 답이 3이 되므로
최대값이 10부터 0까지 -1 해주면서 답을 찾았습니다.0도 답이 될 수 있습니다! 0까지 안했다가 또 답이 틀렸었는데 0도 포함해서 for문 돌리니 맞았습니다.
citations = [0, 0, 0, 0] 이면 0이 답이 되야겠죠.
0이상인 값이 4개이므로 0이 답입니다.
이렇게 풀면 O(M* N)이라 느린데… 딕셔너리 이용해서 풀면 더빨라지지만 그냥 이렇게 제출했습니다.
def solution(citations):
max_item = max(citations)
for h in range(max_item, -1, -1):
h_morethan = 0
for item in citations:
if item >= h:
h_morethan += 1
if h_morethan >= h:
return h