Programmers 42747. h-index
Title
Programmers 42747. h-index
Category
AlgorithmTags
Aliases
Programmers 42747. h-indexCreated
3 years ago
Updated
last year
| 문제 유형 | 난이도 | 걸린 시간 | 해결 유무(✅/❌) |
|---|---|---|---|
| 정렬 | lv.2 | 20분 | ✅ |
설계 방법
citations배열을 정렬한다.reduce함수로citations배열을 순회하며h를 최대값n (citations.length)부터 시작해서 현재 논문의 인용 회수가h번 이상이라면h를 반환하고,- 이 때
reduce함수의 early break를 위해arr를splice한다.
- 이 때
h번 미만이라면h를 감소시킨다.
코드
javascript
function solution(citations) {
return citations
.sort((a, b) => a - b)
.slice()
.reduce((h, cur, _, arr) => {
if (cur >= h) {
arr.splice(1);
return h;
}
return --h;
}, citations.length);
}
function solution(citations) {
return citations
.sort((a, b) => a - b)
.slice()
.reduce((h, cur, _, arr) => {
if (cur >= h) {
arr.splice(1);
return h;
}
return --h;
}, citations.length);
}
시간 복잡도
정렬 : O(NlogN)
순회 : O(N)
→ O(NlogN)
어려웠던 점
처음에 문제 해결 방법이 쉽게 떠올랐고, 적중했지만, 방법이 떠오르지 않았다면 헤맸을 것 같다.
단항 증감 연산자에서
--x또는++x는 피연산자에 연산을 적용한 값을 반환하지만,x--또는x++는 피연산자에 연산을 적용하기 전 값을 반환한다는 것도새로 알게 되었다. (그냥 먼저 적용한다, 나중에 적용한다 로만 이해했었음)
Younho9 Notes