- 우선 내림차순으로 입력 배열 정렬
- 앞에 있는 제일 큰 값 기준으로 확인
-> 배열을 한바뀌 돌면서 left, right 개수를 구함.
-> 그 후에 left, right를 기준으로 한 값으로 문제에서 제시한 조건이 맞는지 확인.
-> 맞다면 그 값을 리턴
function solution(citations) {
//내림차순으로 정렬
citations = citations.sort((a,b)=>{return a>b?-1:1});
var num = citations[0];
while(true){
var left = 0;
var right =0;
citations.forEach(element=>{
if(num<=element){
left++
}
else{
right++;
}
})
if(num<=left&&num>=right)return num;
else{
num--;
}
}
}
이 문제에서 시간이 좀 오래걸렸는데, 그 이유는 입력 배열 값 중에 하나가 답이라고 생각해서였다. 이 부분만 빠르게 눈치 챘다면 더 빠르게 문제를 풀 수 있었겠다는 아쉬움이 남았다.