머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n
과 k
가 매개변수로 주어졌을 때, 양꼬치 n
인분과 음료수 k
개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.
n
< 1,000k
< 1,000n | k | result |
---|---|---|
10 | 3 | 124,000 |
64 | 6 | 768,000 |
입출력 예 #1
입출력 예 #2
const solution = (n, k) => n*2000 + ((k-Math.floor(n/10))*2000);
/* 내가 처음 작성했던 코드이다. 10인분마다 음료 한병이 서비스로 주어지니 n/10을해서 소수점을 내려주는
Math.floor 방식을 선택했다. ES6에서 도입된 화살표 함수로 작성한 코드이다. 리턴이 하나면 중괄호와
리턴을 생략하여 간단하게 표기가 가능하다. */
funcion solution(n, k) {
return n*2000 + ((k-Math.floor(n/10)*2000);
}
/* 위의 화살표 함수와 같은 방식이다. ES6 이전에 사용했던 방식이고 요즘은 화살표 함수를
많이 사용한다고 알고있다. */
const solution = (n, k) => n*12000 + ((k-~~(n/10))*2000);
/* SOLUTION1 코드를 작성하면서 Math.floor 대신 틸트연산자(~~)를 이용해 보면 좋을거 같아서
SOLUTION2에 작성해 보았다. 틸트 연산자는 음수가 아닐경우 Math.floor와 동일한 결과를 나타내준다. */
function solution(n, k) {
let ramb = n*12000;
let drink = k*2000;
return ramb+drink-parseInt(n/10)*2000;
}
/* 다른분이 작성한 코드를 가져와봤다. parseInt를 정수로 강제 형변환 해주는 방식으로 진행한것 같다. */
출처 : 프로그래머스 스쿨 | 코딩테스트 연습
https://school.programmers.co.kr/learn/courses/30/lessons/120830