용기러기's Coding World

Javascript (2) - Math 객체 본문

용기러기's javascript

Javascript (2) - Math 객체

yongkis 2020. 7. 29. 22:51

안녕하세요 :D 

 

오늘은 자바스크립트에서 제공하는 내장 객체 중에 하나인

Math 객체 그리고 그중에서도

알고리즘 풀이 등에서 유용하게 쓰일만한 몇가지 메서드들을 정리해보고자 합니다 :D

 

1) Math.pow(x,y);

먼저, 쉽게 제곱을 할 수 있도록 도와주는 pow 메서드가 있습니다.

사용법은 위와 같이 

x= 제곱해줄 수 

y = 몇 제곱을 할지

로 작성해주시면 됩니다 :D 위의 경우에는 2의 3승을 알아보기 위해 x,y에 각각 2,3을 넣었습니다!

(*참고로 자바스크립트에서는 제곱 연산자로 '**' 을 제공하고 있습니다. 즉, '2**3 = 8' 입니다 :D) 

 

2) Math.sqrt(input);

제곱하는 메서드를 알아봤으니 이제 

제곱근(Square root)을 구하는 메서드를 알아봐야겠죠? :D

제곱근은 쉽게 생각해서 루트를 씌운 값이라고 생각하시면 되는데요!

Math.sqrt() 메서드의 경우 input에 대해서 루트를 씌운 값을 소수로 리턴해줍니다

그러나, 위의 경우에는 25를 넣었기 때문에 깔끔하게 5가 (루트 25 = 5) 나온 것을 볼 수 있습니다 :D

 

Tips*

(*sqrt의 활용? 소수를 구할 때, 예를 들어, 7의 소수를 판별할 때 반복문으로 1<n<7의 범위를 가지는 모든 n을 7로 나눠보면 7이 소수인지 알 수 있지만 알고리즘 복잡도를 낮추기 위해서 sqrt() 메서드를 이용해 중간지점, 예를 들어,  sqrt를 안쓴다면 10번의 반복문을 돌릴 것을 5번으로 단축시킬 수 있습니다!) 

 

3) 올림, 반올림, 내림 3종세트!

Math.ceil()

Math.round()

Math.floor()

이런식으로 ceil, round, floor는 순서대로 올림, 반올림, 내림의 기능을 해주는 메서드입니다!:D 

이런 메서드는 소수점 이하를 버리라할 때 혹은 

알고리즘 문제 조건에서 반올림 하시오라는 조건이 나올 때 쓰면 유용하겠죠? :D

 

** 참고로!

parseInt도 Math.floor와 같이 소수를 input으로 주면 '내림' 한다는 것 알아두세요!:D

 

4) 최대, 최소값 (Max, Min)

Math.min();

Math.max();

 

여러 개의 숫자가 주어지고 그 중에서 최대 혹은 최소값을 구해야하는 경우! 난감하셨죠?(응 ? 홈쇼핑??..)

그런 경우에 저희의 수고를 덜어주는

max, min 메서드를 쓰시면 됩니다:D

input 값은 저는 3개를 넣어서 보여드렸지만, 개수에는 제한이 없습니다!:D 

 

** 참고로!

이런식으로 배열을 넣어서 그중에 제일 큰 값을 찾을 수 는 없습니다! :D

그러나, 배열에서는 sort()를 활용해서 최소, 최대값을 구할 수 있겠죠??ㅎㅎ

 

5) 절대값 abs

Math.abs();

두 수의 차이를 구하는 문제에서, 예를 들어, 4,5를 비교할 때 

5-4 = 1 로 양수로 결과가 나오지만, 

4-5 = -1로 음수로 결과가 나올 수 있습니다.

이 때, 둘이 '얼마나 차이가 나는지'에 주목한다면 어떤 순서로 input을 줘도 '1'이 나와야 합니다 :D

이런 경우에 '절대값' 개념을 써야하고, 우리는 js가 제공하는 Math.abs() 메서드를 쓸 수 있습니다!

 

여기까지:D

5종류의 Math 객체의 메서드를 알아봤는데요!

나중에 포스팅할 random 메서드도 굉장히 재미있는 메서드이지만(예고편!)

오늘은 아껴두겠습니다(?) :D 

 

위의 메서드들은 좀 더 거시적인 단위의

알고리즘 문제를 푸는 데에 있어서 

아주 유용하게 쓸 수 있는 미시적인 단위의 메서드들로

활용할 수 있는 부분이 많다고 생각합니다:D

 

여기까지 포스팅을 마치겠습니다

감사합니다!:D