[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.