반응형
def solution(citations):
answer = 0
citations_sorted = sorted(citations,reverse=True)
for i in range(len(citations_sorted)):
if citations_sorted[i]>=i+1:
answer = i +1
continue
else:
break
return answer
# 6 5 3 1 0
이 문제는 왜 정렬을 써야하는가...? 를 빠르게 캐치해내지 못하면 한도 끝도 없이 못풀고,
Idea를 이해하면 쉬운 문제이다.
h번 인용 이상이 h개, 나머지는 h번 이하... 를 찾는게 중요하고.
h는 크기보다 횟수에 초점을 맞추어야 한다는 것을 생각하면 쉽다.
먼저 테스트 케이스를 정렬하면
6 5 3 1 0 이렇게 되는데,
앞에서부터
6이 1 이상이므로 h 인덱스는 1
5가 2 이상이므로 h 인덱스는 2
3이 3 이상이므로 h 인덱스는 3
2는 4 이하이므로 h 인덱스는 3을 리턴하게 된다.
인용 횟수는 커지고, 배열의 원소는 작아지는데,
그 교점을 찾기 위해서 정렬을 사용한다는 idea를 찾아내면
쉬웠던 문제이다.
반응형
'ETC' 카테고리의 다른 글
프로그래머스 그래프 가장 먼 노드 python 풀이 (0) | 2020.03.05 |
---|---|
프로그래머스 그래프 순위 python 문제풀이 (0) | 2020.03.05 |
Programmers 코딩 테스트 연습 힙(Heap) 라면공장 정답. (0) | 2019.12.15 |
Programmers 코딩 테스트 연습 힙(Heap) 더 맵게 정답. (0) | 2019.12.14 |
Programmers 코딩테스트 연습 베스트 앨범 Python 정답. (0) | 2019.12.12 |