TIL : 프로그래머스 풀어보기

ESH'S VELOG·2023년 7월 23일
0

오늘은 휴식할 겸 코딩테스트를 풀어보았다.

Javascript 0단계 옷가게 할인 받기

첫 제출 답안

function solution(price) {
    if (price >= 100000 && price < 300000) {
        return Math.floor(price *0.95)
    } else if (price >= 300000 && price < 500000) {
        return Math.floor(price * 0.9)
    } else if (price >= 500000) {
        return Math.floor(price * 0.8)
    } 
}

당연히 맞을줄 알았다.
그런데 정답률이 80%라고 틀렸다고 나온다.
엥?? 맞으면 맞은거지 왜 중간에서 틀린답이 나오는거지??
했는데 price가 10만원이 안넘을 경우도 있다는 것이다.. 그러면 할인율은 적용되지 않기때문에 그냥 price가 return이 되어야하는 조건이 빠졌다.

function solution(price) {
    if (price >= 100000 && price < 300000) {
        return Math.floor(price *0.95)
    } else if (price >= 300000 && price < 500000) {
        return Math.floor(price * 0.9)
    } else if (price >= 500000) {
        return Math.floor(price * 0.8)
    } else {
        return price
    }
}

마지막줄 else return price가 빠졌던 것이다.
지난 개인과제 코드 리뷰에도 조건문을 잘 쓰라는 조언을 받았는데 개발자의 사고 방식 중 하나가 최악의 조건을 생각하자인데 또 까먹어버렸네
내가 생각한 것 이외에 다른 상황이 있을 수 있다는 생각도 잊지말고 조건문을 잘 관리해야겠다.

profile
Backend Developer - Typescript, Javascript 를 공부합니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 23일

정보 감사합니다.

답글 달기