n번 째마다 가격이 count배.
가지고 있는 금액이 얼마나 모자른지 return
=> money -= price * count
안 모자르면 0 return
function solution(price, money, count) {
var answer = 0;
for (i=1; i<=count; i++){
money -= price * i
}
if ( money < 0){
return money
}
return answer
}
반복문 조건은 무조건 1번은 타니 초기값은 1로, 타는 횟수만큼 빼야하니 종료값은 count로 설정.
잔액에서 금액 * 횟수를 빼주고 남은 금액을 리턴해주고, 돈이 남았다면 0을 리턴.
이렇게 하니 모자른 금액 그 자체인 -10이 나왔다.
어떻게 -10을 10으로 변환해줄까?
return money * -1
return Math.abs(money)
내가 생각해 낸 방법은 -1를 곱하여 부호를 변경하거나 절대값으로 구하는 방법이었다.
결과는 둘 다 성공.
Math.abs()
: 함수는 주어진 숫자의 절대값을 반환합니다. x가 양수이거나 0이라면 x를 리턴하고, x가 음수라면 x의 반대값, 즉 양수를 반환합니다.
출처 : JS NDN
막연히 절대값만 생각했는데 존재의 유무를 처음 알게 되었음!
튜터님이 말씀하신대로 접근 방법부터 차근차근 생각해나가면서 하니 막연하지가 않았다.
var answer = 0;도 빼버리고 그냥 return 0을 하거나 삼항 연산자를 쓰면 더 예쁜 코드일 거 같은데 풀기가 급급해서 써먹지 못하고 있다.
어떤 문제는 한 시간을 내리 박아도 못 푸는 문제가 있는데 한참 씨름하고 나면 뿌듯하기도 하고 허무하기도 하고 이게 알고리즘의 재미같다.