본문 바로가기
👩‍💻 Programming/Coding Test 문제 풀이

[Programmers] level 1: 부족한 금액 계산하기 by JavaScript

by codingBear 2022. 7. 9.
728x90
반응형

 이번 글은 아래 글들을 참고하여 작성하였습니다.

 

 

수학자 이야기2-등차수열 합공식의 가우스

1부터 100까지의 합을 쉽게 계산한 가우스 중학교 수학 시간에 선생님께서 가우스 이야기를 해주신 적이 있다. 초등학생 때 1부터 100까지의 합을 쉽고 빠르게 계산했었노라고.. 그 이야기는 내게

tyrannohaha.com

 

[알고리즘] 가우스의 덧셈 공식

목표 가우스 덧셈에 대해 알아보자 가우스 덧셈을 이용한 문제 풀이 가우스 덧셈 등장 배경 천재적인 수학자 독일의 가우스는 어려서부터 수학에 재능을 보였다. 가우스가 초등학교 3학년 때 수

workshop-code.tistory.com


 이번 문제에 대한 자세한 사항은 다음 링크를 참고하세요.

 

 내 해답의 경우 for문을 활용한 코드이다. 1부터 count만큼 for문을 돌면서 price와 i를 곱하여 sum에 더한다. 그 다음 sum과 내가 가진 돈(money)를 비교하여 내가 가진 돈보다 sum이 많으면 sum에서 내가 가진 돈을 뺀 값을 반환하고 아니라면(돈이 부족하지 않다면) 0을 반환한다.

 다른 사람의 풀이를 보다가 '가우스 합 공식'을 활용하여 이 문제를 푼 것을 보았다. 가우스의 합 공식은 n부터 m까지 수의 합을 구할 때 쓰이는데 이 문제에도 적용 가능하다. Solution 2가 바로 이 가우스 합 공식을 활용한 풀이이다.

 

Solutions

Solution 1.
function solution(price, money, count) {
  /* My Solution */
  let sum = 0;
  for (let i = 1; i <= count; i++) {
    sum += price * i;
  }
  return sum > money ? sum - money : 0;
}
Solution 2.
function solution(price, money, count) {
  /* Gauss Ver. */
  const result = (price * count * (count + 1)) / 2 - money;
  return result > 0 ? result : 0;
}
728x90
반응형

댓글