이번 아티클에서는 자바 스크립트 <양꼬치> 프로그래머스 문제를 풀어보자.
문제는 아래와 같다.
이 문제에서는
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;
}
'코딩일기 > JS<자바스크립트>' 카테고리의 다른 글
자바 스크립트 <피자 나눠 먹기 (3)> 프로그래머스 (0) | 2024.05.31 |
---|---|
자바 스크립트 <피자 나눠 먹기 (1)> 프로그래머스 (0) | 2024.05.31 |
자바 스크립트 <짝수의 합> 프로그래머스 (0) | 2024.05.30 |
자바 스크립트 <각도기> 프로그래머스 (0) | 2024.05.30 |
자바 스크립트 <숫자 비교하기> 프로그래머스 (0) | 2024.05.30 |
댓글