공부/알고리즘&자료구조

항해99 문제25번풀이 (정수 제곱근 판별,프로그래머스)

youngble 2021. 11. 8. 22:57

https://programmers.co.kr/learn/courses/30/lessons/12934

 

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

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함

programmers.co.kr

 

1. 내가 푼 방법

코드 풀이: 

   1줄. solution 함수에 number 를 인자로 받음

   3줄. Math.sqrt를 사용하여 숫자에대해 루트값을 계산한다. 

   4줄. Number.isInteger()를 사용하여 sqrt값이 정수면 true, 정수가 아닌 소수점을 갖는다면 false 를 integer 변수에 저장

   5줄. if조건문사용하여 integer가 true 면 제곱근 함수인 Math.pow 사용하여 sqrt보다 1큰 수를 제곱하여 return 해줌

   6줄. 그게 아니라면 -1 값을 return 해줌

 

 

 

 

2. 삼항연산자로 응용

코드 풀이:

 위와 같지만 if 문을 생략하고 한줄로 끝내기위해서 삼항연사자를 사용, ? 기준 왼쪽이 참이면 :을 기준 왼쪽 을 반환, false 이면 오른쪽 반환

 

3. isInteger 대신 %로 나머지값에 따른 삼항 조건 연산자

위와 같지만 sqrt값을 1로 나눠 남은 몫이 0이면 정수이므로 Math.pow 쪽 을 출력, 만약 몫이 0이 아니면 소수점이 있다는 것이니 -1을 출력해준다.