코딩테스트

코딩테스트 풀이 - 제곱수 판별하기 | 제곱근을 구하는 Math.sqrt(), 정수 판별법, 삼항연산자

히새 2023. 10. 28. 15:13

1. 1부터 n 까지의 숫자를 i 배열에 할당해준다. 반복문

2. 반복문을 이용하여 n 을 i 로 나눈다.

3. i 의 값과 나누기 결과값이 같다면, 제곱수이다.! = 1을 반환한다.

4. 그렇지 않다면, 2를 반환한다.

 

결론적으로 이 코드는 무조건 2만 반환하는 것 같다.

뭔가 나누는 값이나 결과값이 0이나 1이 되는 치명적인 일이 있어서 2만 반환하는 것 같은데.. 어떻게 알아내야할지를 잘 모르겠고... 일일히 나눠서 ㅎ

 

아니 이거 코테 맞아여? 수학문제 아니에여? 루트가 있구나

그러면 루트씌운 값이 정수면 1 아니면 2를 반환해야겠다

 

이렇게 작성했는데 오류창 난리났다

 

저기 Number 을 작성안해주었구나

 

삼항연산자를 이용한 코드

삼항 연산자를 이용해서 더 짧고 간결한 코드로 작성해보았다.


🎈 Math.sqrt()

 

숫자의 제곱근을 반환한다.

Math.sqrt(x);

매개변수로 숫자 x 를 가진다.

Math.sqrt(9); // 3

 

🎈 정수 판별법

 

- Number.isInteger()

제공된 값이 정수인지 여부를 판별한다.

Number.isInteger(10);	// true
Number.isInteger(-10);	// true

Number.isInteger('10')	// false

Number.isInteger(7.0)	// true
Number.isInteger(7.7)	// false

 

- 나머지 연산자 % 활용

 

정수를 1로 나누면 나머지가 항상 0이 되는 성질을 이용하여 나머지 연산자를 활용해준다.

let a = 1.234
console.log( a % 1 === 0 );	// false

let b = 2
console.log( b % 1 === 0 ); 	// true