문제
접근
처음에 문제를 잘못 이해해서 헤맸다.
citations 배열을 역순으로 정렬해준다.
citations[i]와 i 중 작은 것을 선택하자.
이것은 무조건 h를 만족한다.
h의 최대값을 찾으면 된다.
코드
- 파이썬 코드
1
2
3
4
5
6
7
8
def solution(citations):
citations.sort(reverse=True)
answer = 0
for cnt, citation in enumerate(citations):
now = min(citation, cnt+1)
if answer < now:
answer = now
return answer
- C++ 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> citations) {
int answer = 0;
sort(citations.begin(), citations.end(), greater());
for(int i = 0; i<citations.size(); i++){
int now = min(i+1, citations[i]);
if(answer < now){
answer = now;
}
}
return answer;
}