본문 바로가기
프로그래머스 코딩 테스트

프로그래머스 : JavaScript 알고리즘 100일 챌린지 5일차

by dongjin6539 2023. 5. 20.
728x90
반응형

프로그래머스 : JavaScript 알고리즘 100일 챌린지 5일차

 

코딩테스트 입문 Day5

 

 

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

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

길라잡이

  • 변수 answer의 데이터를 수정해서 답을 구해보세요.
  • 예시
price result
150000 142500
580000 464000

 

답 확인하기
function solution(price) {
    if(price >= 500000){
        return Math.floor(price * 0.8);
    }
    if(price >= 300000){
        return Math.floor(price * 0.9);
    }
    if(price >= 100000){
        return Math.floor(price * 0.95);
    }
    return price;
}

 

해설 확인하기

이 함수는 주어진 가격(price)에 따라 할인된 가격을 계산하여 반환하는 기능을 수행합니다.

함수의 동작을 자세히 설명하겠습니다.

price가 500,000 이상인 경우, 해당 가격에 20% 할인을 적용한 후 소수점 아래를 버림한 값을 반환합니다. 할인된 가격은 price * 0.8로 계산됩니다.

price가 300,000 이상인 경우, 해당 가격에 10% 할인을 적용한 후 소수점 아래를 버림한 값을 반환합니다. 할인된 가격은 price * 0.9로 계산됩니다.

price가 100,000 이상인 경우, 해당 가격에 5% 할인을 적용한 후 소수점 아래를 버림한 값을 반환합니다. 할인된 가격은 price * 0.95로 계산됩니다.

위의 조건에 해당하지 않는 경우, 원래 가격인 price를 반환합니다.

결과적으로, 함수는 주어진 가격에 따라 할인된 가격을 계산하여 반환합니다. 다양한 조건에 따라 할인율을 적용하고 할인된 가격을 반환합니다.

 

2. 아이스 아메리카노 : 머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.

function solution(money) {
    var answer = [];
    return answer;
}

길라잡이

  • 변수 answer의 데이터를 수정해서 답을 구해보세요.
  • 예시
money result
5500 [1, 0]
15000 [2, 4000]

 

답 확인하기
function solution(money) {
    var answer = [Math.floor(money / 5500), money % 5500];
    return answer;
}

 

해설 확인하기

이 함수는 주어진 금액(money)을 5,500으로 나눈 몫과 나머지를 배열로 반환하는 기능을 수행합니다.

함수의 동작을 자세히 설명하겠습니다.

money를 5,500으로 나눈 몫을 계산하여 배열의 첫 번째 요소로 할당합니다. 몫은 Math.floor(money / 5500)로 계산됩니다. Math.floor 함수를 사용하여 소수점 아래를 버림하여 정수 몫을 얻습니다.

money를 5,500으로 나눈 나머지를 계산하여 배열의 두 번째 요소로 할당합니다. 나머지는 money % 5500로 계산됩니다. % 연산자를 사용하여 나머지를 얻습니다.

계산된 몫과 나머지를 요소로 갖는 배열인 answer를 반환합니다.

결과적으로, 함수는 주어진 금액을 5,500으로 나눈 몫과 나머지를 배열로 반환합니다. 이를 통해 몫은 몇 개의 5,500원 단위로 나누어지는지, 나머지는 5,500원으로 나누고 남은 금액을 알 수 있습니다.

 

3. 나이 출력 : 머쓱이는 40살인 선생님이 몇 년도에 태어났는지 궁금해졌습니다. 나이 age가 주어질 때, 2022년을 기준 출생 연도를 return 하는 solution 함수를 완성해주세요.

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

길라잡이

  • 변수 answer의 데이터를 수정해서 답을 구해보세요.
  • 예시
age result
40 1983
23 2000

 

답 확인하기
function solution(age) {
    var answer = 2022 - age + 1;
    return answer;
}

 

해설 확인하기

이 함수는 주어진 나이(age)를 이용하여 태어난 연도를 계산하는 기능을 수행합니다.

함수의 동작을 자세히 설명하겠습니다.

2022에서 주어진 나이(age)를 뺀 뒤, 1을 더한 값을 계산하여 변수 answer에 할당합니다. 이를 통해 태어난 연도를 계산합니다.

계산된 태어난 연도를 변수 answer로 반환합니다.

결과적으로, 함수는 주어진 나이를 이용하여 태어난 연도를 계산하여 반환합니다. 2022에서 나이를 뺀 뒤, 1을 더하는 방식으로 태어난 연도를 구합니다.

 

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

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

길라잡이

  • 변수 answer의 데이터를 수정해서 답을 구해보세요.
  • 예시
numbers result
[1, 2, 3, 4, 5] [5, 4, 3, 2, 1]
[1, 1, 1, 1, 1, 2] [2, 1, 1, 1, 1, 1]
[1, 0, 1, 1, 1, 3, 5] [5, 3, 1, 1, 1, 0, 1]

 

답 확인하기
function solution(num_list) {
    const newArray = [];
    const length = num_list.length;
    for (let i = length - 1; i >= 0; i--) {
        newArray.push(num_list[i]);
  } 
  return newArray;
}

 

해설 확인하기

이 함수는 주어진 숫자 배열(num_list)을 역순으로 정렬하여 새로운 배열에 저장하는 기능을 수행합니다.

함수의 동작을 자세히 설명하겠습니다.

빈 배열 newArray를 선언합니다. 이 배열은 주어진 숫자 배열을 역순으로 저장할 배열입니다.

주어진 숫자 배열(num_list)의 길이를 변수 length에 저장합니다.

for 반복문을 사용하여 역순으로 정렬된 숫자를 newArray에 추가합니다. 반복문의 초기값은 length - 1로 시작하며, 조건식은 i >= 0입니다. 반복문을 한 번 실행할 때마다 i를 1씩 감소시킵니다.

반복문 내부에서 num_list의 i번째 요소를 newArray에 push 메서드를 사용하여 추가합니다. 이를 통해 숫자 배열이 역순으로 정렬되어 새로운 배열에 저장됩니다.

반복문이 모두 실행된 후, 역순으로 정렬된 숫자가 저장된 newArray를 반환합니다.

결과적으로, 함수는 주어진 숫자 배열을 역순으로 정렬하여 새로운 배열에 저장한 후 반환합니다.

728x90
반응형