[프로그래머스/Level2/고득점키트] H-Index (C++)(Python)
- 6번 이상 인용된 논문 수는 1개
- 5번 이상 인용된 논문 수는 2개(최대가 6번이니까 5번 이상 인용된 논문은 2개가 됨)
- 3번이상 인용된 논문은 3개
- 1번이상 인용된 논문은 4개
- 이런식으로 i+1이 citations[i]과 작거나 같아지는 시점이 h의 최대값
- 주어진 citations 벡터를 내림차순으로 정렬한다.
- 벡터 원소의 값과 i+1의 값을 비교하며 i+1이 citations[i]과 작거나 같아지는 시점을 찾는다.
#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++){
if(citations[i] >= i+1){
answer = i+1;
}
}
return answer;
}
def solution(citations):
answer = 0
# citations 배열 내림차순 정렬
citations.sort(reverse=True)
l = len(citations)
for i in range (l):
if citations[i] >= i+1:
answer = i+1
return answer
👉 C++ Vector의 정렬 방법
sort(v.begin(), v.end()); // 오름차순 sort(v.begin(), v.end(), less<>()); // 오름차순 sort(v.begin(), v.end(), greater<>()); // 내림차순
생략
규칙을 찾으면 금방 풀수 있는 문제,,,