머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.
제한사항
function solution(n, k) {
return 12000 * n + (k - Math.floor(n / 10)) * 2000;
}
12000 * n
으로 n인분에 대한 양꼬치의 가격을 구한다 (k - Math.floor(n / 10)) * 2000
먼저 n을 10으로 나눈 후 그 결과의 소수점 아래를 버리고 정수 부분만 취한다. 이를 k에서 뺀 후 그 결과에 대해 2000을 곱하여 음료수 가격을 구한다.function solution(n, k) {
k-=~~(n/10);
if (k < 0) k = 0;
return n*12000+k*2000;
}
특이한 식이 있어서 풀이를 가져와봤다!
k-=~~(n/10)
: n을 10으로 나눈 후 그 결과를 내림하여 얻은 정수값을 k에서 뺀다. ~~
연산자는 소수점 이하를 버리고 정수 부분만 취하는 방법 중 하나이다. (Math.floor(n/10)
과 동일한 결과) 그렇게 n/10의 결과에서 몫 만큼의 값을 k에서 감소시킨다.
if (k < 0) k = 0;
: 만약 k의 값이 0보다 작아지면 k를 0으로 설정한다. k가 음수가 되지 않도록 방지하는 조건이다.
그 후 최종 값을 구해준다.