코딩테스트 문제풀이/프로그래머스

[프로그래머스] 고득점 Kit 정렬

itaeiou 2022. 3. 14. 10:03
반응형

42748 K번째수

https://programmers.co.kr/learn/courses/30/lessons/42748

 

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

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

programmers.co.kr

 

20220314 javascript 풀이

function solution(array, commands) {
    var answer = [];
    
    commands.forEach((v) => {
        let temp = array.slice(v[0]-1, v[1]).sort((a,b) => a-b);
        answer.push(temp[v[2]-1]);
    })
    
    return answer;
}

2번 케이스만 틀리는 경우

javascript의 sort는 문자열 기준이기 때문에 

sort((a,b) => a-b)  로 조건을 줘야 숫자 기준으로 정렬한다.

체크해두기!

 

42746 가장 큰 수

https://programmers.co.kr/learn/courses/30/lessons/42746

 

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

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

programmers.co.kr

 

20220323 javascript 풀이

function solution(numbers) {
    var answer = '';
    
    numbers.sort((a, b) => {
        return Number(b.toString() + a.toString()) - Number(a.toString() + b.toString());
    });
    numbers.forEach(v => answer += v);
    if(numbers[0] == 0) answer = "0"
    
    return answer;
}

예외 케이스 : numbers가 [0, 0, 0] 같이 0만 여러개일 경우

 

42747 H-index

https://programmers.co.kr/learn/courses/30/lessons/42747

 

코딩테스트 연습 - H-Index

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

programmers.co.kr

 

20220329 javascript 풀이

function solution(citations) {
    citations.sort((a, b) => b - a );
    
    let n = citations.length;
    let answer = Math.min(citations[0], n);
    
    for(; answer>=0; answer--) {
        let count = citations.filter(v => v >= answer).length;
        if(count >= answer) return answer;
    }
    
    return n;
}
반응형