-
https://programmers.co.kr/learn/courses/30/lessons/42747
프로그래머스 H-Index 문제입니다.
#include <string> #include <vector> #include <algorithm> using namespace std; int solution(vector<int> citations) { int answer = 0; sort(citations.begin(),citations.end()); for(int i =0;i<citations.size();i++){ if(citations.size() - i <= citations[i]) return citations.size() - i ; } return answer; }
아이디어
이 문제는 문제 이해를 완전히 하는게 풀이의 95퍼센트라해도 과언이 아닐정도로 이해하기가 어려웠음
실제로 H-Index라는 것이 존재 했고, return citations.size() - i; 라인을 이해하는데 정말 많은 시간을 사용함
아마 프로그래머스에서 제공된 테스트 케이스 [3, 0, 6, 1, 5] result = 3이 원인이 아닐까 생각 됨
제공 된 테스트 케이스의 3과 결과 값 3을 보고 테스트 케이스에 있는 값이 반환이 되어야 한다는 생각이 강하게 박히면서 작성한 코드의 모든것을 의심하고 심지어는 피곤해서 if문의 비교연산자를 착각하고 있는게 아닐까 라는 생각까지 함
이해를 도울수 있는 테스트 케이스 몇가지 공유합니다.
[3] -> result = 1
[3, 5, 7] -> result = 3 // 3번이상 인용된 논문이 3편임
[0, 0, 0, 2, 3, 3, 3] -> result = 3 // 3번 이상 인용된 논문이 3편임
'알고리즘 > 프로그래머스' 카테고리의 다른 글
Programers 네트워크 (0) 2022.03.12 Programers 타켓넘버 (0) 2022.03.12 Programers 가장 큰 수 (0) 2022.03.12 Programers K번째수 (0) 2022.03.12 Programers 전화번호 목록 (0) 2022.03.12 댓글