📌 LeetCode [2303]: Calculate Amount Paid in Taxes
🔗 문제 링크
문제 설명 📄
소득 income
과 각 세율 구간을 나타내는 brackets
가 주어졌습니다. 각 구간은 [upperLimit, percent]
로 나타나며, 소득이 구간의 상한을 초과하면 해당 구간의 세율이 초과된 부분에 적용됩니다.
모든 소득에 대해 계산된 총 세금을 반환하세요.
문제 해결 접근 📋
- 세금 구간별로 반복하면서 해당 구간에 대해 적용할 수 있는 소득을 계산합니다.
- 이전 구간의 상한값과 현재 구간의 상한값의 차이를 통해 해당 구간에서 과세될 금액을 계산합니다.
- 계산된 금액에 해당 구간의 세율을 곱하여 세금을 누적합니다.
- 소득이 0이 되면 반복을 종료하고 결과를 반환합니다.
Solution 💻
class Solution:
def calculateTax(self, brackets: List[List[int]], income: int) -> float:
answer = 0
beforeValue = 0
for tax, percent in brackets:
if income == 0:
return answer
value = min(income, (tax - beforeValue))
answer += value * (percent / 100)
income -= value
beforeValue = tax
return answer
시간 복잡도 ⏲️
- 시간 복잡도: O(n)
n
은 세금 구간의 길이입니다. 각 구간을 한 번씩 순회하며 계산합니다.
공간 복잡도 🗄️
- 공간 복잡도: O(1)
추가적인 메모리 사용 없이 변수만 사용하여 계산합니다.
'알고리즘 > 리트코드' 카테고리의 다른 글
LeetCode [2965]: Find Missing and Repeated Values (0) | 2024.12.21 |
---|---|
LeetCode [383]: Ransom Note (0) | 2024.12.20 |
LeetCode [733]: Flood Fill (0) | 2024.12.20 |
LeetCode [1791]: Find Center of Star Graph (0) | 2024.12.20 |
LeetCode [168]: Excel Sheet Column Title (1) | 2024.12.20 |