Post

[Programmers] #120818 - 옷가게 할인 받기 [Java][C++][Python]

구매 금액 구간별로 할인율을 적용해 지불 금액을 구하는 워밍업 문제.

[Programmers] #120818 - 옷가게 할인 받기 [Java][C++][Python]

문제 링크


1. 아이디어

price가 50만 원, 30만 원, 10만 원 구간 중 어디에 속하는지에 따라 할인율(20%, 10%, 5%)이 정해지고, 어느 구간에도 속하지 않으면 할인이 없다. 구간이 겹치므로 큰 금액부터 순서대로 확인해야 한 번에 올바른 할인율을 적용할 수 있다. 지불 금액은 정수로 반환해야 하므로 정수 나눗셈으로 소수점 이하를 버린다.


2. 복잡도

접근시간공간
풀이$O(1)$$O(1)$

3. 코드

풀이 [Java][C++][Python]

1
2
3
4
5
6
7
8
class Solution {
    public int solution(int price) {
        if (price >= 500000) return price * 80 / 100;
        if (price >= 300000) return price * 90 / 100;
        if (price >= 100000) return price * 95 / 100;
        return price;
    }
}
1
2
3
4
5
6
7
8
9
#include <bits/stdc++.h>
using namespace std;

int solution(int price) {
    if (price >= 500000) return price * 80 / 100;
    if (price >= 300000) return price * 90 / 100;
    if (price >= 100000) return price * 95 / 100;
    return price;
}
1
2
3
4
5
6
7
8
def solution(price):
    if price >= 500000:
        return price * 80 // 100
    if price >= 300000:
        return price * 90 // 100
    if price >= 100000:
        return price * 95 // 100
    return price

This post is licensed under CC BY 4.0 by the author.