본문 바로가기
코딩일기/JS<자바스크립트>

자바 스크립트 <양꼬치> 프로그래머스

by 2pro.e_pro 2024. 5. 31.
728x90
반응형

이번 아티클에서는 자바 스크립트 <양꼬치> 프로그래머스 문제를 풀어보자.

 

문제는 아래와 같다.

 

 

 

이 문제에서는

n 값 즉 양꼬치는 12,000원 이고,

k 값 즉 음료수는 2,000원 이다.

그리고 이문제는 아래 중요한 조건이 있는데 

10인분을 먹으면 음료수를 공짜로 준다는것.

 

이 문제는 고민을 많이 했는데 회고를 하려고 보니 어떻게 풀었나 싶다.

문제를 푸는 동안은 초능력을 발휘하는 건가 싶은 생각..😂

function solution(n, k) {
  var answer = 0;
  return n*12000 +k*2000 - parseInt(n/10)*2000
}

 

해석하자면 solution(n, k) 값을 먹는 만큼 계산이 되도록 하는것인데.

 

1. n은 12,000원이니 n*12000, k 도 동일하게 k*2000으로 +  하였고

2. 그 뒤가 중요한데, 문제의 마지막 조건 "10인분을 먹으면 음료수를 공짜로 준다는것."
    이 것 때문에 parseInt() 메소드를 활용해서 n(양꼬치) 값을 10으로 나눈뒤 음료수값 2000을 곱한값을
    아래 보는 바와 같이 빼는 형식을 만들었다.
     n*12000 +k*2000 - parseInt(n/10)*2000

 

조금 더 자세하게 설명해 보자면

n*12000 +k*2000 <= 이 수식은 지금까지 양꼬치 집에서 먹은 양이다.

쉽게 말하자면 숫자는 가격일 뿐이고 N과 K는 각각 양꼬치와 음료수의 갯수이다.

각각 양꼬치 25개 와 음료수 5개를 먹었다면

 

n 값은 25 * 12,000원 = 30만원

k 값은 5 * 2,000원 = 1만원

 

총 31만원을 지불해야하는건데

 

양꼬치 10개에 음료수 하나가 서비스 이니

양꼬치 25개를 10으로 나누면 2.5개가 된다.

그러나 2.5에서 2,000원 음료수 서비스값을 곱할 수 없으니

parseInt를 활용해서 2.5의 소수점인 0.5를 없앤다.

그게 바로 parseInt(n/10) 이부분이다.

 

그렇게 하면 2개라는 값이 나오고 음료수 값 2000원을 곱하면 할인 가격 4,000원이 나온다.

 

그러면 할인요소를 뺀 지불 가격이 아래의 수식처럼 나오게 되는것이다.

n*12000 +k*2000 - parseInt(n/10)*2000

 

다른사람의 풀이는 어땠을까?

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

 

 

 

728x90
반응형

댓글