fffo

[코테뿌수기] 정렬 본문

Programming/Algorithm

[코테뿌수기] 정렬

gggs 2022. 2. 7. 17:35

접근

sort 프로토타입 메서드 활용

표준 빌트인 객체인 Array의 프로토타입 메서드 sort의 사용법을 정확히 숙지

Array를 프로토타입상속 받은 객체만 사용할 수 있음에 유의

EcmaScript 2019 이후부터 sort되지 않는 요소를 그대로 두는 sort stability를 보장해줌

연습

[Lv. 1] k번째 수

 

코딩테스트 연습 - K번째수

[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]

programmers.co.kr

function solution(array, commands) {
    return commands.map(([i, j, k]) => array.slice(i - 1, j)
                        .sort((a, b) => a - b)[k - 1]);
}

[Lv. 2] 가장 큰 수

 

코딩테스트 연습 - 가장 큰 수

0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰

programmers.co.kr

function solution(numbers) {
    if (numbers.every(num => num === 0))
        return "0";
    return numbers.sort((compA, compB) => 
                        parseInt(String(compB) + String(compA))
                        - parseInt(String(compA) + String(compB)))
                    .join("");
}

[Lv. 3] H-Index

 

코딩테스트 연습 - H-Index

H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표

programmers.co.kr

function solution(citations) {
    const sorted = citations.slice().sort((a, b) => b - a);
    for (let i = 0; i < sorted.length; i++) {
        if (sorted[i] <= i)
            return i;
    }
    return sorted.length;
}

'Programming > Algorithm' 카테고리의 다른 글

[코테뿌수기] 스텍/큐  (0) 2022.02.08
[코테뿌수기] hash  (0) 2022.02.06
[js문제풀이] 경주로 건설  (0) 2021.11.05
[js문제풀이] 표 편집  (0) 2021.11.04
[js문제풀이] 광고 삽입  (0) 2021.11.01
Comments