🖋️ 정렬 알고리즘 풀이
K번째수
- 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬
k번째에 있는 수를 구하기
- 배열 array
- [i, j, k]를 원소로 가진 2차원 배열 commands
- 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return
function solution(array, commands) {
return commands.reduce((acc, [i, j, k]) => {
const arr = array.slice(i-1, j).sort((a, b) => a - b);
acc.push(arr[k-1])
return acc;
}, []);
}
가장 큰 수
- 0 또는 양의 정수가 주어졌을 때
정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내기
- 0 또는 양의 정수가 담긴 배열 numbers
- 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열 return
function solution(numbers) {
const answer = numbers.sort((a, b) => `${b}${a}` - `${a}${b}`).join('');
return answer[0] === '0' ? '0' : answer;
}
- map 으로 string 형 변환 후 내림차순
function solution(numbers) {
const answer = numbers.map(n => String(n)).sort((a, b) => (b+a) - (a+b)).join('');
return answer[0] === '0' ? '0' : answer;
}
H-Index
- 생산성과 영향력을 나타내는 지표
H-Index를 나타내는 값인 h를 구하기
- 논문 n편 중 h번 이상 인용된 논문이 h편 이상
- and, 나머지 논문이 h번 이하 인용되었다면 h의 최댓값 return
- 내림차순 정렬 후 요소가 count 이상 처음일때 길이
const solution = (citations) => citations.sort((a, b) => b - a)
.filter((el, idx) => el >= idx + 1)
.length;