문제 설명
머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다.
구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 10 ≤ price ≤ 1,000,000
- price는 10원 단위로(1의 자리가 0) 주어집니다.
- 소수점 이하를 버린 정수를 return합니다.
풀이 코드
using System;
using System.Collections.Generic;
using System.Linq;
public class Solution {
public int solution(int price) {
List<(int, double)> list = new List<(int, double)> ();
list.Add((0, 0));
list.Add((100000, 5));
list.Add((300000, 10));
list.Add((500000, 20));
var count = list.Select(x => x.Item1 <= price).Count(y => y);
var target = list[count - 1];
return (int)(price - (price * (target.Item2 / 100)));
}
}
그냥 조건문으로 풀어도 좋을거같지만 list에 int, double 튜플을 넣어서 구현해봤다.
- list.Add((0, 0)); 을 추가하지 않아서 런타임 에러가 발생하였다. 바로 추가
- return 시에 형변환 문제가 있어서 명시적 형변환을 추가하였따.
'프로그래밍 > Algorithm' 카테고리의 다른 글
힙(Heap) vs 이진 탐색 트리(Binary Search Tree) (1) | 2023.10.04 |
---|---|
[프로그래머스 Programmers] 피자 나눠 먹기(2) (0) | 2023.09.27 |
해시 테이블(Hash Table)에 대해서 (0) | 2023.09.27 |
[프로그래머스 Programmers] 삼각 달팽이 (0) | 2023.09.21 |
배열(Array)에 대해서 (0) | 2023.09.20 |
댓글