코테 준비-문제풀기

프로그래머스 - 정렬 H-index 문제

FireStone 2020. 5. 1. 19:23

https://programmers.co.kr/learn/courses/30/lessons/42747

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

  • count_if를 사용하면 벡터안에 함수를 만들어 해당 함수에 들어맞는 요소의 개수를 셀 수 있다.
  • 함수는 bool로 만들고, ex) 20이상의 수가 몇개인지 세고 싶다 하면 if(i>=20) return true; 이런식으로 하면된다.
  • 무슨 소리인지 모르겠으면 코드로 ㄱㄱ
#include <string>
#include <vector>
#include <algorithm>

using namespace std;
int element;
bool count_h(int i){
    if(i>=element&&i>0)
        return true;
    else
        return false;
}

int solution(vector<int> citations) {
    int answer = 0;
    sort(citations.begin(),citations.end(),less<int>());
    int size=citations.size();
    
    for(element=size;element>=0;element--){
        int upper_h = count_if(citations.begin(), citations.end(),count_h);
        
        if(upper_h>=element){
            answer=element;
            break;
        }
                                     
    }
    
    return answer;
}