728x90
테스트 케이스
citations | return |
[7, 7, 7, 7, 7] | 5 |
[7, 5, 5, 5, 4, 2, 1, 1, 0] | 4 |
문제를 풀기 위해 이해해야 할 것:
- h의 최댓값은 citations의 길이이다.
- h값은 citations 배열의 요소에만 국한되지 않는다.
풀이
def solution(citations):
answer = 0
citations.sort()
h = len(citations)
while(True):
for i in range(len(citations)):
if h <= citations[i]:
if h <= len(citations) - i:
return h
h -= 1
return answer
내 풀이
- h는 인용된 논문의 최댓값이다.
- citations는 오름차순 정렬한다.
- h의 최댓값은 주어진 배열의 길이이다. 따라서 h = len(citations)로 초기값을 설정하고 반복문(while)을 돌면서 h값을 1씩 감소시킨다.
- while 반복문 내에서는 for 반복문을 통해 citations 배열을 돈다. i는 citations의 현재 인덱스를 가리킨다.
- h가 citations[i] 보다 작다면, 배열에서 i 인덱스 뒤에 있는 요소들은 전부 h보다 크다는 것을 의미한다. 따라서 남아있는 요소들의 개수( len(citations) - i )가 h보다 크다면 h를 리턴한다.
문제 설명을 굉장히 헷갈리게 해놨다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 코딩테스트 고득점 Kit / 힙(Heap)] 이중우선순위큐 (python) (0) | 2024.02.28 |
---|---|
[프로그래머스 코딩테스트 고득점 Kit / 힙(Heap)] 더 맵게 (python) (0) | 2024.02.20 |
[프로그래머스 코딩테스트 고득점 Kit / 정렬] 가장 큰 수 (python) (0) | 2024.02.02 |
[프로그래머스 코딩테스트 고득점 Kit / 정렬] K번째수 (python) (0) | 2024.02.02 |
[프로그래머스 코딩테스트 고득점 Kit / 완전탐색] 모음사전 (python) (0) | 2024.01.28 |