프로그래머스 H-index (level 2)
6707 단어 JavaScript알고리즘코딩 테스트JavaScript
나의 1차 풀이 (풀이 시간 : 5분 30초)
function solution(citations) {
var answer = 0;
for (let i = 1; i <= citations.length; i++) {
if (citations.filter(x => x >= i).length >= i) {
answer = i;
}
}
return answer;
}
간단하게 풀 수 있는 문제다. 하지만 O(n^2)인게 조금 걸려서 다른 방법도 한번 찾아보자.
나의 2차 풀이
function solution(citations) {
var answer = 0;
let sortedCitations = citations.sort((a,b) => b-a);
for (let i = 1; i <= citations.length; i++) {
if (citations[i] < i) {
answer = i;
break;
}
}
return answer;
}
정렬 한 후에 특정 인덱스에서 인덱스 값과 원소값을 비교하여 판별한다. 실행시간이 눈에 띄게 줄었지만, 3개의 테스트 케이스를 통과하지 못했다.
나의 3차 풀이
function solution(citations) {
var answer = 0;
let sortedCitations = citations.sort((a,b) => b-a);
for (let i = 0; i <= citations.length; i++) {
answer = i;
if (citations[i] < i+1) {
break;
}
}
return answer;
}
for문의 range를 다르게 하니까 해결되지 않았던 테스트 케이스들이 풀렸다.
다른 사람들의 풀이
3차 풀이와 동일하게 풀었다.
Author And Source
이 문제에 관하여(프로그래머스 H-index (level 2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@htogether7/프로그래머스-H-index-level-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)