공부/알고리즘&자료구조
항해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을 출력해준다.