개발의 흔적
알고리즘 테스트# 9. 정수 제곱근 판별 본문
안녕하세요.
프로그래머스에 있는 "정수 제곱근 판별" 알고리즘 문제를 풀어보겠습니다.
문제 : 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
출력 :
121 | 144 |
3 | -1 |
코드 :
* 문제 해설 *
정수 : 121,3
API사용안하고 제곱근구하는방법
1. 제곱근이란 : 정수a의값을 두번 곲한 값
121의 제곱근을 구하기 위해 for문을 i부터 121까지의 길이만큼 곱합니다.
( i * i == 121)
121 -> 11 * 11의 제곱근이 나옵니다.
* 코드 해설 *
현재 제곱근을 Math.sqrt()의 api를 사용하여 제곱근을 구합니다.
Math.sqrt()는 double형이기에 현재 선언되어있는 값처럼 long으로 처리합니다.
제곱근이 아닌 값들은 1로 값들이 선언됩니다.
문제에 나와있는것처럼 -1을 해줍니다.
제곱근인지 아닌지를 확인하기 위해서
제곱근 * 제곱근 == 제곱값을 확인하여 동일한 값이라면
(제곱근 * 1) * (제곱근 * 1)를 하여 리턴합니다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
'코딩테스트 연습' 카테고리의 다른 글
알고리즘 테스트# 11. 정수 내림차순으로 배치하기 (0) | 2020.07.23 |
---|---|
알고리즘 테스트# 10. 자릿수 더하기 (0) | 2020.07.23 |
알고리즘 테스트# 8. 제일 작은 수 구하기 (0) | 2020.07.21 |
알고리즘 테스트# 7. 짝수와홀수구하기 (0) | 2020.07.20 |
알고리즘 테스트# 6. 콜라츠 추측 (0) | 2020.07.20 |
Comments