우아한테크코스 5기 프론트엔드 미션 리팩터링 1주차 5번
📋 문제 5번
https://github.com/soohyun-dev/javascript-onboarding/blob/soohyun-dev/src/problem5.js
⚙️ 기능 목록
1. 인출할 돈을 파라미터로 전달 받음.
2. 50000원부터 1원까지 나누어가면서 화폐 단위를 구별해줌.
3. 결과값 리턴.
⬅️이전 풀이
😥 미흡했던 점
- 함수가 한 가지 일만 하지 않음.
📌 고려사항
- 클래스 사용
- 메서드 10줄 제한
- 한가지 기능만 수행
- depth 최대 2
- while문 => forEach문
- 메소드 호출 시 파라미터를 전달시키는 방식으로 재사용성 고려함.
📜 리팩터링
class Bank {
constructor() {
this.money = 0;
}
withdraw(money) {
this.money = money;
return this.exchange();
}
exchange() {
const moneyType = [50000, 10000, 5000, 1000, 500, 100, 50, 10, 1];
const result = [];
moneyType.forEach((type) => {
result.push(~~(this.money / type));
this.money = this.money % type;
});
return result;
}
}
function problem5(money) {
const bank = new Bank();
return bank.withdraw(money);
}
module.exports = problem5;
반응형
'성장기록 > 우아한테크코스' 카테고리의 다른 글
우아한테크코스 5기 프론트엔드 미션 리팩터링 1주차 7번 (0) | 2022.11.28 |
---|---|
우아한테크코스 5기 프론트엔드 미션 리팩터링 1주차 6번 (0) | 2022.11.28 |
우아한테크코스 5기 프론트엔드 미션 리팩터링 1주차 4번 (0) | 2022.11.27 |
우아한테크코스 5기 프론트엔드 미션 리팩터링 1주차 3번 (0) | 2022.11.27 |
우아한테크코스 5기 프론트엔드 미션 리팩터링 1주차 2번 (0) | 2022.11.26 |