자바스크립트 정렬만 할 줄 알면 쉽게 풀수 있는 문제이다.
//오름 차순정렬
numbers.sort((a, b)=> {
return a-b;
});
// 내림 차순 정렬
numbers.sort((a, b)=> {
return b-a;
});
h-index 값을 0으로 두고 정렬된 배열 뒷부분부터 순회하면서 배열의 값이 h-index 값보다 크면 h-index 값을 1증가시키고 그이외에 경우에는 값을 그대로 두면 된다.
예를 들어
1 1 2 4 5 같은 경우(h-index = 0)
step1 : 1 1 2 4 5
5 > 0(h-index) 1(h-index++)
step2 : 1 1 2 4 5
4 > 1(h-index) 2(h-index++)
step3 : 1 1 2 4 5
2 > 2(h-index) 2(h-index)
이후스텝은 정렬된 배열이기때문에 검사할 필요가없음
step4 : 1 1 2 4 5
step5 : 1 1 2 4 5
function solution(numbers) {
var answer = 0;
numbers.sort((a, b)=> {
return a-b;
});
for(let i = numbers.length - 1; i >= 0; i--){
if(answer < numbers[i]){
answer++;
}
}
return answer ;
}
'프로그래머스' 카테고리의 다른 글
프로그래머스_스킬트리_자바 (0) | 2020.05.17 |
---|---|
프로그래머스_124 나라의 숫자_JAVA (0) | 2020.05.17 |
프로그래머스_입국심사_JAVASCRIPT (0) | 2020.05.07 |
프로그래머스_섬연결하기 (0) | 2020.05.07 |
프로그래머스_탑 (0) | 2020.05.07 |