반응형
[처음 푼 풀이]
function solution(price, money, count) {
let fee = 0;
for (let count = 1; count <= 2500; count++) {
fee += price * count;
}
return (fee - money);
if (money > fee) return 0;
}
1. 먼저 요금을 반환받을 변수 설정
2. for문 안에서 count를 변수로 주고 요금에 원래가격 * 횟수 를 곱해 누적시킴
3. 그리고 요금에서 가지고 있던 돈을 빼서 리턴받음
4. 근데 여기서.. count <= 2500 이 뭔가 이상함.. (하면서도 이건 아닌 것 같다고 느낌)
5. 입출력 예시에 맞게 count <= 4 하면 테스트는 통과하지만, 나머지는 절대 안됨!
6. 따라서 for문 안의 변수를 다시 설정해야 한다고 느낌
[두번째 풀이]
function solution(price, money, count) {
let fee = 0;
let result = 0;
for (let i = 0; i <= count; i++) {
fee += price * i;
}
result = fee - money;
return result > 0 ? result : 0;
}
1. for문에서 i 를 변수로 넣고 count만큼 반복하게 하면 되었던 것!
2. 삼항연산자를 사용해 결과값이 0보다 크면 결과값을 리턴하고, 0보다 작으면 (금액이 부족하지 않으면) 0을 리턴!
[코드 리뷰]
function solution(price, money, count) {
let sum = 0;
for (let i = 0; i <= count; i++) {
sum += price * i;
}
return sum - money > 0 ? sum - money : 0
}
굳이 변수를 2개 설정하지 않고, sum 변수만 생성해 풀면 더 깔끔한 풀이법 완성!
'코딩 테스트 > Programmers - 1' 카테고리의 다른 글
[JS] 나누어 떨어지는 숫자 배열 (1) | 2022.09.21 |
---|---|
[JS] 두 정수 사이의 합 (0) | 2022.09.21 |
[JS] 소수 찾기 (0) | 2022.09.04 |
[JS] 문자열 내림차순으로 배치하기 (0) | 2022.08.28 |
[JS] 문자열 정수로 만들기 (0) | 2022.08.28 |