코딩테스트 입문 - 양꼬치 문제


📢 문제 설명

머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.


⚠️ 제한사항

  • 0 < n < 1,000
  • n / 10 ≤ k < 1,000
  • 서비스로 받은 음료수는 모두 마십니다.

🔶 입출력 예

nkresult
103124,000
646768,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) {
    let result = n * 12000 + k * 2000;
    if(n >= 10) {
        let drink = Math.floor(n / 10);
        result -= 2000 * drink;
    }
    return result; 
}

10인분 이상일 경우에만 조건을 달았다.
10인분을 시키면 서비스로 음료수 하나를 주니 n / 10을 하고, 정수로 나오도록 Math.floor 함수를 사용하였다.

다른 사람의 풀이를 열어 보면, 새로운 문법을 사용한 코드가 있다.

💡 다른 사람의 풀이(틸트 문법)

function solution(n, k) {
    k-=~~(n/10);
    if (k < 0) k = 0;
    return n*12000+k*2000;
}

저 '~'이 틸트(Tilt) 연산자라는데 난생 처음 보는 문법이다.
'~~'는 Math.floor()와 동등하게 쓰이는 연산자라고 한다.

🔅 '~~' 연산자

let pie = 3.141592
console.log(~~pie) // 3
profile
프론트엔드 개발자입니다.

0개의 댓글