2022-03-11(TIL)

황인호·2022년 6월 7일
0

TIL 모음

목록 보기
1/119

오늘은 알고리즘 문제풀이를했다

  • 알고리즘5번
  • 두 정수 사이의 합 구하기

두 정수 a,b가 주어졌을때 a,b사이에 속한 모든 정수의 합을 리턴하는 함수를 완성하라

ex) a = 3 , b = 5인 경우 3과 5사이에 4까지 포함해서 더한 숫자 12를 return해야함

function solution(a, b) {
		let answer = 0;
		if (a <= b) {
				for (let i = a; i <= b; i++) {
					answer = answer + i
					}
		}else {
				for (let j = b; j <= a; j++) {
				answer = answer + j		
		}
	}
	return answer;
}

여기서 a = 3이기때문에 당연히 b와 비교했을때 작을수밖에 없다 그러므로 a의 값이 b와 같이지는

5가 될때까지 반복할수있게 반복문을 작성하고 3,4,5는 i의 값이된다 그러면

i는 3+4+5가되므로 12를 return하게된다.

마찬가지로 else문은 a = 5이고,b = 3일경우에 5+4+3 을 출력하여 12를 return할수있게 작성하였다.

알고리즘 5번문제에서 내가 작성한 코드는 굉장히 길지만 이를 간추린 정말 간단하고 완벽한 코드가 있어서 아래의 적어 놓으려고한다.

function solution(a, b) {
		let result = 0;
		return (a+b)*(Math.abs(b-a)+1) / 2;
}

이 코드에서 나오는 Math.abs는 무엇일까??

Math객체는 수학에서 자주 사용하는 상수(수식에서 변하지않는 값을 뜻함)와 함수들을 미리 구현해 놓은 자바스크립트 표준내장객체이다.

Math.abs는? ⇒ 주어진 숫자의 절대값을 반환한다. (아래 내용 참고)

Math.abs()의 작동 방식
빈 객체, 하나 이상의 요소를 가진 배열, 숫자가 아닌 문자열, undefined나 빈 매개변수를 받으면 NaN을 반환합니다. null, 빈 문자열이나 빈 배열을 제공하면 0을 반환합니다.

Math.abs('-1');     // 1
Math.abs(-2);       // 2
Math.abs(null);     // 0
Math.abs('');       // 0
Math.abs([]);       // 0
Math.abs([2]);      // 2
Math.abs([1,2]);    // NaN
Math.abs({});       // NaN
Math.abs('string'); // NaN
Math.abs();         // NaN
profile
성장중인 백엔드 개발자!!

0개의 댓글