본문 바로가기
프로그래밍/Algorithm

[프로그래머스 Programmers] 옷가게 할인 받기

by bantomak 2023. 9. 27.

문제 설명

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

 

 

제한사항

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

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

풀이 코드

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 시에 형변환 문제가 있어서 명시적 형변환을 추가하였따.

댓글