[코딩테스트] 프로그래머스 - 옷가게 할인 받기

Co-Zi·2024년 7월 1일
0

프로그래머스 코딩테스트 입문

Day05 - 옷가게 할인 받기

프로그래머스 코딩테스트 공부 및 내용 정리용으로 기록을 남깁니다.


해당 문제를 풀 때는 다음의 사항을 주의해야 합니다.

  • 계산결과에 대해서 데이터타입을 고려해야한다.
  • 가격의 구간범위를 나눌 때, 명시적으로 주어진 범위 외에도 고려해야 한다.


풀이 상세 설명

1) 계산결과에 대해서 데이터타입을 고려해야한다.

  • 주어진 문제에 대해서는 결과값을 정수형으로 맞춰야하는데,
    할인율을 반영한 0.8, 0.9, 0.95 등의 소수값을 곱하면 double로 데이터타입이 인식되기 때문에, 이에 대해서 결과값을 int로 형변환을 해주어야한다.
// 방법1: 형변환
answer = (int) (price*(0.8));

// 방법2: 정수 이용한 계산
answer = price * 9 / 10;

2) 가격의 구간범위를 나눌 때, 명시적으로 주어진 범위 외에도 고려해야 한다.

  • 명시적으로 주어진 구간들 외의 경우를 누락하기 쉽다.
    특정 구간들 외에는 할인율을 적용하지 않는 것을 주의해야 한다.
  • 해당 문제에서는 높은 숫자의 범위부터 if-else구문을 활용하여
    조건식을 설정하는 것이 더 깔끔하다.
		if (price >= 500000){
            answer = (int) (price*(0.8));
        } else if (price >= 300000) {
            answer = price * 9 / 10;
        } else if (price >= 100000) {
            answer = price * 95 / 100;
        } else { // 이부분!!! 누락주의!!!
            answer = price;
        }


[문제 출처] 프로그래머스 코딩테스트 입문 Day05 - 옷가게 할인 받기
https://school.programmers.co.kr/learn/courses/30/lessons/120818

profile
한걸음 한걸음

0개의 댓글