Algorithm/Javascript

[프로그래머스] 230728 코딩테스트 연습

보라해바라기 2023. 7. 28. 15:09
SMALL

1. 뒤에서 5등 위로

function solution(num_list) {
    var answer = [];
    
    // ** 숫자 기준 정렬 방법: sort((a,b) => a-b)
    answer = num_list.sort((a,b) => a-b);
    answer = answer.slice(5);
    
    return answer;
}

 

2. 전국 대회 선발 고사

function solution(rank, attendance) {
    var answer = 0;
    let att_dict = {};
    
    // 참가 안 한 학생들의 등수를 0으로 처리
    attendance.forEach ( (v, i) => {
        if (v == false) rank[i] = 0;
    })
    
    // 참가한 학생들의 번호, 등수를 딕셔너리에 저장 (key, value)
    rank.forEach ( (v, i) => {
        if ( v != 0) {
            att_dict[i] = v;
        }
    })
    
    let sorted = Object.entries(att_dict).sort((a, b) => a[1] - b[1]);
    // 딕셔너리 value로 오름차순 정렬
    
    let a = Number(sorted[0][0]);
    let b = Number(sorted[1][0]);
    let c = Number(sorted[2][0]);
    
    answer = a*10000 + b*100 + c;
    
    return answer;
}

 

3. 정수 부분

function solution(flo) {    
    return Math.floor(flo);
    // Math.ceil : 올림
    // Math.round : 반올림
    // Math.floor : 버림
}

 

4. 문자열 정수의 합

function solution(num_str) {
    var answer = 0;
    
    let arr = num_str.split("");

    arr.forEach ( (v, i) => {
        arr[i] = Number(v);
        answer += arr[i];
    })
    
    return answer;
}

 

5. 문자열을 정수로 변환

function solution(n_str) {
    var answer = 0;
    
    answer = Number(n_str);
    
    return answer;
}

 

6. 0 떼기

function solution(n_str) {
    var answer = '';
    let cnt = 0;
    
    let arr = n_str.split("");
    arr.every( i => {
        if ( i == 0 ) {
            cnt++;
            return true; // break
        }
    })
    answer = n_str.slice(cnt);
    
    return answer;
}

 

7. 두 수의 합

function solution(a, b) {
    var answer = '';
    
    // BigInt : 아주 큰 정수를 표현
    answer = (BigInt(a) + BigInt(b)).toString();
    
    return answer;
}

 

8. 문자열로 변환

function solution(n) {
    return n.toString();
}
728x90