프로그래머스 옷가게 할인받기/Programmers 💻

GyuriKim·2023년 1월 11일

Programmers

목록 보기
7/10
post-thumbnail

옷가게 할인받기

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


제한사항

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

입출력 예시

  • 입출력 예 #1
    150,000원에서 5%를 할인한 142,500원을 return 합니다.
  • 입출력 예 #2
    580,000원에서 20%를 할인한 464,000원을 return 합니다.
priceresult
150,000142,500
580,000464,000

나의 풀이

#include <string>
#include <vector>

using namespace std;

int solution(int price) {
    int answer = 0;
    if(price>=100000 && price <300000){
        answer = price - (price * 0.05);
    }
    else if(price>=300000 && price<500000){
        answer = price - (price * 0.1);
    }
   else if(price>=500000){
        answer = price - (price * 0.2);
    }
    else{
        answer = price;
    }
    return answer;
}

풀고나서..

  • 다 풀고나서 제출하니, 틀린 케이스가 생기고 정확도가 80이었다. 조건에만 급급하여 놓쳤는데, price가 할인되지 않을 경우를 설정하지 않았었다. 그 부분을 추가하고 나니, 틀린 케이스 없이 잘 돌아갔다.

C언어 풀이방법

  • 다른 사람의 풀이 방법 중에서 나랑 다른 방식으로 할인된 값을 구한 풀이가 있었다. 이 풀이방법의 식이 훨씬 간편해보인다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int price) {
    if (price>=500000) {
        price *= 0.8;
    } else if (price>=300000) {
        price *= 0.9;
    } else if (price>=100000) {
        price *= 0.95;
    }
    return price;
}
profile
_〆(。。)

1개의 댓글

comment-user-thumbnail
2024년 10월 16일

둘 다 보기 좋은걸요! 알고리즘을 이해하고 있다는게 중요한 것 아닐까요?!!;ヾ(≧▽≦*)o

답글 달기