●문제

●입출력

사용 알고리즘 : 정렬 알고리즘
문제해석 citation 왼쪽에서부터 보면, 내림차순을 했을때 "i번째 논문은 i+1번째로 많이 인용된 논문 이 됨.
즉 예시가 [3, 0, 6, 1, 5 ]인경우 내림차순하여 [6, 5, 3, 1, 0]
[6, 5, 3, 1, 0]
[1, 2, 3, 4, 5]
4번째인 1이 4보다 작아지는 경우가 조건이 끊기는 조건
이때 3번째 인덱스가 hidden-index
답은 3
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> citations)
{
//[3, 0, 6, 1, 5]
//1. 내림차순 해주기 [6, 5, 3, 1, 0] -> a
//2. 인덱스+1이랑 비교해주기 [ 1, 2, 3, 4, 5] -> b
//a의값이 b값보다 작아질때 그 값이 h- index
//6,1 -> x 5,2 -> x 3,3 ->같으니 아님 1,4 -> 더 작음 O
//h - index 0 ~ 3 3번째 배열 3번째 값이 hidden
vector<int> temp = citations;
int answer = 0;
//내림차순
sort(temp.begin(), temp.end(), greater<int>());
for (int i = 0; i < temp.size(); i++)
{
if (temp[i] >= i + 1)
{
answer++;
}
else
{
break;
}
}
return answer;
}
레벨 : 2
점수 : 3
----
문제가 이해하는데 30분걸렸다..문제가 많이 이상하다..ㅠㅠ
'C++ 프로그래머스 > Sort' 카테고리의 다른 글
| 프로그래머스(C++) - 가장 큰 수 (0) | 2025.08.18 |
|---|---|
| 프로그래머스(C++) - k번째 수 (0) | 2025.08.18 |
| Algorithm - Sorting (0) | 2025.08.13 |
| 프로그래머스(C++) - 명예의 전당(1) (0) | 2025.07.27 |
