프론트엔드 센트럴파크 (☞゚ヮ゚)☞

조건문(if, else)를 이용한 ATM 인출 본문

Algorism

조건문(if, else)를 이용한 ATM 인출

자라나라나무나무나 2022. 7. 6. 19:48
ATM기기는 5만원권만 인출 가능하다.
인출 시 0.5의 수수료가 필요하다.
단, 정상적인 인출이 불가능할 경우 돈은 출금되지 않고, 통장의 원래 금액을 반환한다.

정답1

function answer(withdraw, total) {

    let result;

    if(withdraw == total) {
        result = total;
    } else if(withdraw%5 == 0) {
        result = (total - withdraw) -0.5;
    } else if(withdraw%5 != 0) {
        result = total;
    }

    return result;
};

let input = [[40,130.0],[33,130.0],[300,300.0]];  

for(let i = 0; i < input.length; i++) {
    console.log(`#${i + 1} ${answer(input[i][0], input[i][1])}`);
}

처음 if문을 맨 마지막에 넣었더니 [300, 300.0]테스트 케이스가 5의 배수이기 때문에 출력이 -0.5가 나왔다.

이걸 막기위해 제일 처음 조건문 부터 withdraw와 total의 값이 같으면 total 값을 출력하게 만들었더니 올바르게 출력되었다.

 

정답2

function answer(withdraw, total) {

    let result;

    if(withdraw % 5 != 0) {
        result = total;
    } else if (withdraw + 0.5 > total) {
        result = total;
    } else {
        result = total - withdraw - 0.5;
    }

    return result;
};

let input = [[40,130.0],[33,130.0],[300,300.0]];  

for(let i = 0; i < input.length; i++) {
    console.log(`#${i + 1} ${answer(input[i][0], input[i][1])}`);
}

먼저 if문을 통해 [33, 130.0] 테스트 케이스의 결과를 도출하고 

withdraw + 0.5 의 값이 total 보다 크면 total 값을 출력하게 하였다([300, 300.0] 테스트 케이스)

Comments