-
알고리즘 문제를 풀어보는데
function solution(num1, num2) { var answer = 0 return answer; } 문제1. num1은 10이고 num2는 5일때 결과는 2가 나와야 하며 문제2. num1은 7이고 num2는 2일때 결과는 3이 나와야 한다.
이런 문제가 나왔다. 0단계 문제인데
var answer = num1 / num2; 작성 후
체크를 해봤는데 당연히 문제 2번 7/2는 값이 3.5이기 때문에 틀렸다고 나왔다.
그럼 어떻게 해야 하는 건지 다른 사람들의 답변을 봤는데
var answer = Math.floor(num1 / num2);라고 한다.
검색해 봤더니 Math.floor(x)는 주어진 숫자 x를 가장 가까운 정수로 내림하여 반환한다고 한다. 그래서 문제 2번의 답은 3.5이니까 정수로 내림하여 3으로 반환 시킨 거다.역시 또 내가 모르는 기능이 있나라고 생각했지만 내 머리로는 끄집어낼 수 없기에 답변을 보길 잘했던것 같다.(이렇게 알아가는거지..)
function solution(num1, num2) { var answer = Math.floor(num1 / num2); return answer; } solution(10, 5); // 2 solution(7, 2); // 3
그 외에도 Math에 대한 여러 가지가 있길래 자주 쓰일 거 같아서 내가 보려고 정리를 조금 해보았다./* ----- 기본적인 수학 함수 ----- */ // *****Math.abs(x) - 주어진 숫자 x의 [절대값]을 반환 // x가 [양수]일 경우 입력값 x를 [그대로] 반환 // x가 [음수]일 경우 입력값 x의 부호를 바꾼 [양수] 값을 반환 // x가 [0]일 경우 0을 반환 console.log( Math.abs(3) ) // 3 console.log( Math.abs(-3) ) // 3 console.log( Math.abs(0) ) // 0 // *****Math.sign(x) - 주어진 숫자 x의 [부호]를 반환 // x가 [양수]일 경우 1을 반환 // x가 [음수]일 경우 -1을 반환 // x가 [0]일 경우 0을 반환 console.log( Math.sign(5) ) // 1 console.log( Math.sign(-5) ) // -1 console.log( Math.sign(0) ) // 0 // *****Math.pow(x, y) - x값을 y값으로 [제곱]한 값을 반환 console.log( Math.pow(2, 3) ); // 8 - 정수 제곱 console.log( Math.pow(2.5, 3) ); // 15.625 - 소수 제곱 console.log( Math.pow(-2, 4) ); // 16 - 음수 제곱 console.log( Math.pow(9, 0.5) ); // 3 - 제곱근 계산 console.log( Math.pow(4, -0.5) ); // 0.5 - 거듭제곱 계산 // *****Math.sqrt(x) - 주어진 숫자 x의 [제곱근]을 반환 // 주어진 숫자 x의 제곱근 [결과값이 정수]이면 정수의 제곱근이다.(유리수) // 주어진 숫자 x의 제곱근 [결과값이 소수]이면 소수의 제곱근이다.(무리수) console.log( Math.sqrt(25) ); // 5 - 정수 제곱근 console.log( Math.sqrt(2) ); // 1.4142135623730951 - 소수 제곱근 // *****Math.cbrt(x) - 주어진 숫자 x의 [세제곱근]을 반환 // 주어진 숫자 x의 세제곱근 [결과값이 정수]이면 정수의 세제곱근이다.(유리수) // 주어진 숫자 x의 세제곱근 [결과값이 소수]이면 소수의 세제곱근이다.(무리수) console.log( Math.cbrt(27)); // 3 - 정수 세제곱근 console.log( Math.cbrt(2) ); // 1.2599210498948732 - 소수 세제곱근 /* --------------------------------------------------------------------------- */ /* ----- 반올림 및 절사 함수 ----- */ // Math.round(x) - 주어진 숫자 x를 [가장 가까운 정수로 반올림]하여 반환 const a1 = 4.4; const a2 = 4.5; const a3 = -4.5; const a4 = -4.6; console.log( Math.round(a1) ); // 4 console.log( Math.round(a2) ); // 5 console.log( Math.round(a3) ); // -4 console.log( Math.round(a4) ); // -5 // Math.floor(x) - 주어진 숫자 x를 [가장 가까운 정수로 내림]하여 반환 const b1 = 3.2; const b2 = 3.9; const b3 = -3.9; console.log( Math.floor(b1) ); // 3 console.log( Math.floor(b2) ); // 3 console.log( Math.floor(b3) ); // -4 // Math.ceil(x) - 주어진 숫자 x를 [가장 가까운 정수로 올림]하여 반환 const c1 = 2.2; const c2 = 2.9; const c3 = -2.9; const c4 = -2.1; console.log( Math.ceil(c1) ); // 3 console.log( Math.ceil(c2) ); // 3 console.log( Math.ceil(c3) ); // -2 console.log( Math.ceil(c4) ); // -2 // Math.trunc(x) - 주어진 숫자 x의 [정수 부분만]을 반환(소수 부분을 버린다.) const d1 = 6.8; const d2 = 6.1; const d3 = 0.1; const d4 = 0.9; const d5 = -6.9; console.log(Math.trunc(d1)); // 6 console.log(Math.trunc(d2)); // 6 console.log(Math.trunc(d3)); // 0 console.log(Math.trunc(d4)); // 0 console.log(Math.trunc(d5)); // -6 /* --------------------------------------------------------------------------- */ /* ----- 비교 함수 ----- */ // Math.max(x1, x2) - 주어진 숫자들 중에서 [가장 큰 값]을 반환 // Math.min(x1, x2) - 주어진 숫자들 중에서 [가장 작은 값]을 반환 const e1 = 5; const e2 = 4.9; const e3 = 2; const e4 = 1.7; const e5 = 3.6; console.log(Math.max(e1, e2, e3, e4, e5)); // 5 console.log(Math.min(e1, e2, e3, e4, e5)); // 1.7 /* --------------------------------------------------------------------------- */ /* ----- 랜덤 숫자 생성 함수 ----- */ // Math.random() - [0~1 미만]의 임의의 부동 소수점 숫자를 반환(임의의 숫자를 생성할 수 있다.) console.log(Math.random()); // [0 ~ 1]의 숫자가 [랜덤]으로 출력(소숫점) console.log(Math.random() * 10); // [0 ~ 10]의 숫자가 [랜덤]으로 출력(소숫점) console.log(Math.floor(Math.random() * 50) + 1) // [1 ~ 50]의 숫자가 [랜덤]으로 출력(floor을 사용해 정수로 반환) /* --------------------------------------------------------------------------- */ // 그 외 이런게 더 있다고함. // Math.log(x) - x의 자연 로그값을 반환합니다 (밑이 e인 로그) // Math.exp(x) - e (자연 상수)의 x 제곱을 반환합니다. // Math.sin(x) - 인자 x의 [사인]값을 반환합니다. // Math.cos(x) - 인자 x의 [코사인]값을 반환합니다. // Math.tan(x) - 인자 x의 [탄젠트값]을 반환합니다. // Math.asin(x) - 인자 x의 [아크사인]값을 반환합니다. // Math.acos(x) - 인자 x의 [아크코사인]값을 반환합니다. // Math.atan(x) - 인자 x의 [아크탄젠트]값을 반환합니다. // Math.atan2(x, y) - [y 좌표와 x 좌표를 기반]으로 하는 [아크탄젠트]값을 반환합니다.
이제 수학적인 문제가 나오면 Math를 사용해야겠지라는 생각을 할 것 같다.
'코드 찌끄리기' 카테고리의 다른 글
filter() 메서드 (0) 2024.08.07 Styled Component (1) 2024.08.07 SCSS 개념 정리 (1) 2024.08.06 React 컴포넌트의 생명 주기 개념 정리하기 (0) 2024.08.01 배열( push(), unshift(), pop(), shift(), indexOf(), lastIndexOf() ) (0) 2024.07.14