프로그래머스 코딩테스트



배열 자르기


정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.

function solution(numbers, num1, num2) {
    var answer = [];
    answer = numbers.slice(num1, num2 + 1)
    return answer;
}

설명: 자바스크립트에서 배열을 자를 때 사용하는 메서드는 .slice이다. num1은 시작할 인덱스, num2는 끝날 인덱스의 자리이다.


삼각형의 완성조건 (1)


선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.

가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다. 삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.

function solution(sides) {
    var answer = 0;
    sides.sort((a, b) => a - b);
    const longestSide = sides[2];
    const sum = sides[0] + sides[1];
    if (longestSide < sum) {
        return answer=1;
    } else {
        return answer=2;
    }

    return answer;
}

설명: 우선 sort를 사용하여 순서대로 정리해준다. 삼각형은 3변이니 가장 긴 변의 인덱스가 2라는 것을 알 수 있다. 나머지 두 변의 길이를 더한 다음 비교해보도록 한다.


문제 3 - 배열 뒤집기


정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.

function solution(num_list) {
    var answer = [];
    answer = num_list.reverse();
    return answer;
}

설명: .reverse()메서드를 사용하면 손쉽게 뒤집을 수 있다.


문제 4 - 짝수는 싫어요


정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.

function solution(n) {
    var answer = [];
    for (let i = 1; i <= n; i += 2) {
        answer.push(i);
    }
    return answer;
}

설명: n 이하의 홀수를 모두 구해야하므로 반복문을 사용한다. .push()를 사용해 배열 안에 변수를 넣을 수 있다.


문제 5 - 양꼬치


머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.

function solution(n, k) {
    var answer = 0;
    
    const yakitoriPrice = 12000;
    const drinkPrice = 2000;
    const freeDrinkThreshold = 10;

    const yakitoriCost = n * yakitoriPrice;
    const drinkCost = Math.max(0, k - Math.floor(n / freeDrinkThreshold)) * drinkPrice;

    answer = yakitoriCost + drinkCost;
    
    return answer;
}

Jeong

예술, 코딩, 그리고 삶