프로그래머스 코딩테스트



문제 1. 머쓱이보다 키 큰 사람


머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.

function solution(array, height) {
    var answer = 0;
    for (let i = 0; i< array.length; i++){
        if(array[i] > height){
            answer +=1;
        }
    }
    return answer;
}

설명: 간단히 array의 i번째마다 머쓱이의 키를 비교하는 반복문을 작성했다.


문제 2. 중복된 숫자 개수


정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.

function solution(array, n) {
    var answer = 0;
    for (let i = 0; i< array.length; i++){
        if(array[i]===n){
            answer += 1;
        }
    }
    return answer;
}

설명: 문제 1과 마찬가지로 숫자 array의 i번째가 n과 같은지 파악하고 answer를 증가시켰다.


문제 3.옷가게 할인받기


머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다. 구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.

function solution(price) {
    let answer = 0;

    if (price >= 500000) {
        answer = 0.2;
    } else if (price >= 300000) {
        answer = 0.1;
    } else if (price >= 100000) {
        answer = 0.05;
    }

    const discountedPrice = price * (1 - answer);
    return Math.floor(discountedPrice);
}

설명: 소수점 이하를 버린 정수를 return 하기 위해서 Math.floor 메서드를 사용해야 한다.


문제 4 - 배열 두배 만들기


정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.

function solution(numbers) {
    var answer = [];
    for (let i=0; i< numbers.length; i++){
        answer.push(numbers[i]*2)
    }
    return answer;
}

설명: 각 배열에 2를 곱해서 answer에 push 하였다.


문제 5 - 중앙값 구하기


중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.

function solution(array) {
    var answer = 0;
    array.sort((a, b) => a - b);
    answer = array[Math.floor(array.length / 2)];
    return answer;
}

설명: 우선 sort를 사용하여 배열을 정리해주고, 전체 길이를 2로 나눈 인덱스값의 array구할 수 있도록 한다.


Jeong

예술, 코딩, 그리고 삶