문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42747
참고 : https://en.wikipedia.org/wiki/H-index
문제 설명
N개의 숫자가 주어지는데 이숫자는 논문이 인용된 횟수이다 .
이 숫자들중 인용횟수가 H번 이상인 논문이 H개일때 H의 최대값을 H를 H-Index 라고 한다.
H-Index 를 return 하라 .
알고리즘
1. 먼저 입려된 벡터를 오름차순으로 정렬 (num 벡터로 지정).
2.num[0] 부터 num.size() 까지 for문을 돌림
3.num벡터에서 i 이상인것의 갯수를 센다음 갯수가 i 이상이면 return .
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#include<iostream>
#include <string>
#include <vector>
#include<algorithm>
using namespace std;
int solution(vector<int> citations) {
vector<int> num = citations;
sort(num.begin(), num.end(),greater<int>()); //오름차순 정렬
int target = num[0];
for (int i = num[0]; i > 0;i--) {
int cnt = 0;
for (int j = 0; j < num.size(); j++) {
if (num[j] >= i) cnt++;
}
if (cnt >= i) return i;
}
}
int main() {
vector<int> a = { 3,0,6,1,5 };
int result = solution(a);
cout << result;
}
|
cs |
'c++ > 프로그래머스' 카테고리의 다른 글
프로그래머스 : 소수 찾기 (0) | 2020.04.24 |
---|---|
프로그래머스 : 가장 큰수 (0) | 2020.04.24 |
프로그래머스: 종이접기 (0) | 2020.04.09 |
프로그래머스 : 서울에서 경산까지 (0) | 2020.04.07 |
프로그래머스 : 카드게임 (0) | 2020.04.03 |