카테고리 없음

프로그래머스 6일차

아라라_ 2023. 5. 22. 22:31

“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”

Frederick Philips Brooks
Mythical Man-Month 저자
728x90

옷가게 할인 받기

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

function solution(price) {
    if(price >= 500000) {
        price *= 0.8;
    } else if(price >= 300000) {
        price *= 0.9;
    } else if(price >= 100000) {
        price *= 0.95;
    }
    return Math.floor(price);
}

주어진 가격 price가 500,000 이상인지 확인합니다.

만약 price가 500,000 이상이라면, 20% 할인을 적용합니다. 이를 위해 price에 0.8를 곱합니다.
예를 들어, price가 600,000이라면, 600,000 * 0.8 = 480,000이 됩니다.
price가 500,000 미만인 경우, 다음 조건을 확인합니다.

price가 300,000 이상인지 확인합니다.
만약 price가 300,000 이상이라면, 10% 할인을 적용합니다. 이를 위해 price에 0.9를 곱합니다.
예를 들어, price가 400,000이라면, 400,000 * 0.9 = 360,000이 됩니다.
price가 300,000 미만인 경우, 다음 조건을 확인합니다.

price가 100,000 이상인지 확인합니다.
만약 price가 100,000 이상이라면, 5% 할인을 적용합니다. 이를 위해 price에 0.95를 곱합니다.
예를 들어, price가 200,000이라면, 200,000 * 0.95 = 190,000이 됩니다.
위의 조건에 해당하지 않는 경우, 즉 price가 100,000 미만인 경우에는 어떠한 할인도 적용하지 않습니다. price는 그대로 반환됩니다.

최종적으로 할인이 적용된 price를 소수점을 버린 정수값으로 변환하여 반환합니다. 이를 위해 Math.floor(price)를 사용합니다.

 

 

아이스 아메리카노

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

function solution(money) {
    const americano = 5500;
    
    const glass = Math.floor(money / americano);
    const change = money % americano;
    
    const ans = [glass, change];
    
    return ans;
}

americano는 아메리카노 한 잔의 가격으로 5500이라고 정의됩니다.

glass 변수는 money를 americano로 나눈 몫을 계산합니다. 이를 통해 총 몇 잔의 아메리카노를 구매할 수 있는지 계산됩니다. Math.floor() 함수를 사용하여 소수점 이하를 버리고 정수값으로 변환합니다.

change 변수는 money를 americano로 나눈 나머지를 계산합니다. 이는 아메리카노를 구매한 후에 남은 금액을 나타냅니다.

ans 배열은 glass와 change를 원소로 갖습니다. glass는 구매한 아메리카노 잔의 수를, change는 남은 금액을 나타냅니다.

최종적으로 ans 배열을 반환합니다.

예를 들어, solution(30000)을 호출하면 다음과 같은 단계를 거칩니다:

americano의 가격은 5500이므로, 30000을 5500으로 나눈 몫은 5입니다. 즉, 5잔의 아메리카노를 구매할 수 있습니다.

나머지 연산을 통해 남은 금액을 계산합니다. 30000을 5500으로 나눈 나머지는 3000입니다. 따라서 5500 * 5 = 27500을 아메리카노로 사용하고, 30000 - 27500 = 2500이 남은 금액입니다.

ans 배열은 [5, 2500]을 반환합니다.