[프로그래머스]Level.1 두 정수 사이의 합

전현정·2021년 11월 24일

알고리즘

목록 보기
10/18
post-thumbnail

문제설명

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한
모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우,
3 + 4 + 5 = 12이므로 12를 리턴합니다.

제한조건

- a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
- a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
- a와 b의 대소관계는 정해져있지 않습니다.

입출력 예

문제접근

  • 해당 문제도 1 - 10 까지 속한 모든 정수의 합을 구하는 문제이므로 등차수열의 공식을 이용하면 된다.
  • 3번째 조건에 맞춰 두 변수의 차를 구할 때 절대값을 구하는 메소드인 Math.abs(a-b)을 이용하면 a,b의 차를 구할 수 있다.

문제풀이1

문제이해1

  1. Math.abs()는 숫자의 절댓값을 반환
  2. 가우스의 공식 사용 : 등차수열 합의 공식 ((a-b)+1)(a+b)/2
function solution(a,b){
 var answer = 0;
  answer = (a+b) * (Math.abs(b-a)+1/2
  return answer;
}
function solution(a,b){
  return (Math.abs(a-b)+ 1) * (a+b) /2;
}

문제풀이2

문제이해2

  1. a,b 중 작은 값과 큰 값 찾기
  2. 작은 값을 for문의 시작에 두고 max 값까지 for문 반복
  3. 작은 값과 큰 값 사이의 값 합산
function solution(a,b){
	var answer = 0;
  var min - Math.min(a,b);
  var max = Math.max(a,b);
  for(var i=min; i <= max; i++){
   answer+= i; 
  }
  return answer;
}

Math.abs()

주어진 숫자의 절대값 반환

function difference(a, b) {
  return Math.abs(a - b);
}

console.log(difference(3, 5));
// 2


참고링크
https://velog.io/@pmk4236/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%91%90-%EC%A0%95%EC%88%98-%EC%82%AC%EC%9D%B4%EC%9D%98-%ED%95%A9-Javascript
https://sururu.tistory.com/139
https://jsikim1.tistory.com/65

profile
꾸준하기 위해 기록하는 개발자의 개발 일기

0개의 댓글