본문 바로가기
Computer Science/Programmers

[C++] 프로그래머스 옷가게 할인 받기, Javascript, Python

by 기억보다 기록을 2023. 12. 26.
반응형

 

 

 

 

 

예제 설명


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

 

 

제한사항

 

- 10 ≤ price ≤ 1,000,000, price는 10원 단위로(1의 자리가 0) 주어집니다.
- 소수점 이하를 버린 정수를 return합니다

 

 

입출력 예 => num_list result

price result
150,000 142,500
580,000 464,000

 

 

입출력 예 설명

 

입출력 예 #1
150,000원에서 5%를 할인한 142,500원을 return 합니다.

 

입출력 예 #2
580,000원에서 20%를 할인한 464,000원을 return 합니다.

 


 

 

문제 해결


해결법  :  else-if 대신 그냥 if 문의 3개 쓰기 ( 여러 if문의 )

#include <string>
#include <vector>

using namespace std;

int solution(int price) {
    if(price >= 500000) {
        return price * 0.8;
    }
    if(price >= 300000) {
        return price * 0.9;
    }
    if(price >= 100000) {
        return price * 0.95;
    }
    return price;
}

 

 


 

해결법 2 :  할인 배열 만들기

 

#include <iostream>
using namespace std;

int solution(int price) {

    int discounts[] = {0, 5, 10, 20};
    int cutoffs[] = {0, 100000, 300000, 500000};
    int discounted_price = price;

    for (int i = 3; i > 0; --i) {
        if (price >= cutoffs[i]) {
            discounted_price = price * (100 - discounts[i]) / 100;
            break;
        }
    }
    
    return discounted_price;
}

 

 

 


 

 

 

자바스크립트 [ Jacascript ] 언어로 해결


 

function solution(price) {
    if(price >= 500000){
        return Math.floor(price - price * 0.2);
    }else if(price >= 300000){
        return Math.floor(price - price * 0.1);
    }else if(price >= 100000){
        return Math.floor(price - price * 0.05);
    }
    return price;
}

 

 

 

파이썬 [ Python ] 해결


 

def solution(price):
    if price >= 500000:
        answer = price * .80
    elif price >= 300000:
        answer = price * .90
    elif price >= 100000:
        answer = price * .95
    else:
        answer = price
    return int(answer)

 

 

 

 

 

 

 
반응형