H-index
문제링크
프로그래머스 level2 문제다.
1시간 끙끙대다가 다른분들의 풀이법을 읽어봤다.
[0] 인경우 0이고, [7]인경우 1이었다.
[30, 19, 9, 1] 인 경우에도 답은 3이었다. 테스트케이스를 여러개 보니까 조금 감이 왔다.
리뷰
문제에 나와있는 테스트케이스에서
[3, 0, 9, 2, 6] 이라면, 답은 3이라고 생각했다.
하지만, 다른분들의 풀이법을 읽어보니 인용수 배열중에 답이 꼭 있는것이 아니었다.
그리고 정렬을 하면 수월했다.
정렬 해두고, 현재 인덱스보다 작아진다면 탈출하면 답이 나온다.
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
// H-index (프로그래머스)
int solution(vector<int> citations){
int answer = 0;
// 정렬
sort(citations.begin(), citations.end(), greater<int>());
while(answer < citations.size()){
if(citations[answer] <= answer){ // 인덱스 보다 작아지는 순간 종료
break;
}else{
answer++;
}
}
return answer;
}
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
문자열 다루기 기본 (0) | 2020.07.17 |
---|---|
다리를 지나는 트럭 (0) | 2020.07.16 |
소수찾기 (에라토스테네스의 체) (0) | 2020.07.16 |
쇠막대기 (0) | 2020.07.15 |
문자열 내림차순으로 배치하기 (0) | 2020.07.15 |