brunch

You can make anything
by writing

C.S.Lewis

by 찐님 May 17. 2023

코딩테스트 TIL - 제곱근과 약수

제곱근이 정수면 약수의 갯수는 홀수다.

그동안 무섭고, 자신없어 피해왔던 코딩테스트를 준비해보려고 한다. 



KEYWORD

Math.sqrt(n) - 제곱근 판별

Number.isInteger(n) - 정수 판별

Math.pow(n,m) - n^m

제곱근이 정수면 약수의 갯수는 홀수





문제 1

코딩테스트 연습 > 월간 코드 챌린지 시즌2 > 약수의 개수와 덧샘


기존 풀이 

중첩 반복문을 사용하여 풀었다. 
두 정수 left, right의 차이만큼 반복하는 for문 하나, 
약수를 판별하기 위한 for문 하나를 사용했다. 

매우 솔직하고 정석적인 풀이방법이었다. 





새로운 풀이 

제곱근이 정수면 약수의 갯수는 홀수이다.
이래서 수학을 알아야하는 것이다... 찾아보니 무려 중1 교육과정에 나와있는 것이라고 한다.
JS에는 편리한 내장함수가 있다. 

Math.sqrt(n) - 제곱근을 구해주는 내장메소드
Number.isInteger(n) - 정수를 판별해주는 내장메소드

=> 제곱근이 정수면 약수의 갯수는 홀수라는 원리와 이 두개의 내장 함수를 이용하면 끝







이 원리를 응용하기 위해 풀어본 다른 문제2

코딩테스트 연습 > 연습문제 > 정수 제곱근 판별


풀이과정

쏘심플~~�
제곱근인지 판별해서 요구사항에 맞는 결과값을 리턴하면 된다. 

n의 제곱근을 변수 x에 담아, x가 정수인지 알기 위해 Number.isInteger()을 사용했다.
제곱을 계산하는 내장함수도 이미 있어서 수월하게 풀었다.

Math.pow(n,m) - n^m



작가의 이전글 곧 있으면 2년이 되어간다.
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari