풀이 과정
이해하기가 어려운 문제지만, 이해한다면 쉽게 풀 수 있는 문제이다.
h회 이상 인용된 논문이 h개인지 찾는 최대값 문제이다.
내림차순으로 정렬하고 현재 인덱스 값 + 1보다 크거나 같으면 답이 된다.
i = 0, citation 6 이상의 논문 1편 이상
i = 1, citation 5 이상의 논문 2편 이상
i = 2, citation 3 이상의 논문 3편 이상
i = 3, citation 1 이상의 논문 4편 이상
i = 4, citation 0 이상의 논문 5편 이상
풀이 1
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> citations) {
int answer = 0;
sort(citations.rbegin(), citations.rend());
for(int i = 0; i < citations.size(); i++){
if(citations[i] >= i + 1){
answer = i + 1;
}
}
return answer;
}
풀이 2
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> citations) {
int answer = 0;
// sort 함수 내림차순 구현
for(int i = 0; i < citations.size(); i++){
for(int j = 0; j < citations.size(); j++){
if(citations[i] > citations[j]){
int temp = citations[i];
citations[i] = citations[j];
citations[j] = temp;
}
}
}
for(int i = 0; i < citations.size(); i++){
if(citations[i] >= i + 1){
answer = i + 1;
}
}
return answer;
}
'🍞 Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스][Level2] 가장 큰 수 c++ (0) | 2022.10.21 |
---|---|
[프로그래머스][Level2] [1차] 뉴스 클러스터링 c++ (0) | 2022.10.21 |
[프로그래머스][Level2] 프로세스 c++ (0) | 2022.10.21 |
[프로그래머스][Level2] 타겟 넘버 c++ (0) | 2022.10.21 |
[프로그래머스][Level2] 짝지어 제거하기 c++ (0) | 2022.10.21 |