[프로그래머스 / C++] Lv 0. 옷가게 할인 받기

FinDer178·2024년 7월 10일
0

문제

문제링크

내 답

#include <string>
#include <vector>

using namespace std;

int solution(int price) {
    int answer = 0;
    
    if (price >= 100000)
        answer = price * 0.95;
    
    else if (price >= 300000)
        answer = price * 0.9;
    
    else if (price >= 500000)
        answer = price * 0.8;
    
    return answer;
}

정말 간단한 문제라 금방 코딩을 했는데 계속 테스트 케이스 에러가 발생했다. 그래서 생각해 보니 분기문의 순서가 잘못된 것을 깨달았다. 수정된 코드는 다음과 같다.

수정 코드 (정답 코드)

#include <string>
#include <vector>

using namespace std;

int solution(int price) {
    int answer = 0;
    
    if (price >= 500000)
        answer = price * 0.8;
    
    else if (price >= 300000)
        answer = price * 0.9;
    
    else if (price >= 100000)
        answer = price * 0.95;
    
    else 
        answer = price;
    
    return answer;
}

이렇게 price가 500,000원 이상일 경우를 첫 번째 분기로 설정하면 이 금액보다 적은 금액들이 입력값으로 들어올 경우 정상적으로 분기가 처리된다. 이런 실수를 하지 말자.

profile
낙관적 개발자

0개의 댓글