[프로그래머스] 양꼬치
카테고리 : 컴퓨터 공학
태그: programmers · Code Refactoring · 참고 할 만한 다른 사람의 코드 · 코딩 기초 트레이닝 · 프로그래머스 · 코딩테스트 · JavaScript · 양꼬치 · js 양꼬치
태그: programmers · Code Refactoring · 참고 할 만한 다른 사람의 코드 · 코딩 기초 트레이닝 · 프로그래머스 · 코딩테스트 · JavaScript · 양꼬치 · js 양꼬치
문제 설명
머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n
과 k
가 매개변수로 주어졌을 때, 양꼬치 n
인분과 음료수 개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.
제한사항
- 0 <
n
< 1,000 - n / 10 ≤
k
< 1,000 - 서비스로 받은 음료수는 모두 마십니다.
입출력 예
n | k | result |
---|---|---|
10 | 3 | 124,000 |
64 | 6 | 768,000 |
입출력 설명
입출력 예 #1
- 10인분을 시켜 서비스로 음료수를 하나 받아 총 10 _ 12000 + 3 _ 2000 - 1 * 2000 = 124,000원입니다.
입출력 예 #2
- 64인분을 시켜 서비스로 음료수를 6개 받아 총 64 _ 12000 + 6 _ 2000 - 6 * 2000 =768,000원입니다.
나의 첫번째 풀이
function solution(n, k) {
var answer = 0;
var lamb = 12000;
var drink = 2000;
return lamb * n + k * drink - parseInt(n / 10) * 2000;
}
나의 두번째 풀이(Code Refactoring)
function solution(n, k) {
if (n >= 10) {
k -= ~~(n / 10);
}
return 12000 * n + 2000 * k;
}
// 틸드 연산자를 이용해봤다 / Math.floor()랑 동일하다
// 시간 복잡도는 O(1) => 가장 효율적인 시간 복잡도가 나왔다
참고 할 만한 다른 사람의 코드
function solution(n, k) {
return n * 12000 + k * 2000 - parseInt(n / 10) * 2000;
}
//코드가 보기 좋고 깔끔해 보인다
// 시간 복잡도는 O(n) => 데이터의 모든 요소를 처리해야 하는 경우 O(n) 알고리즘이 필요하다