반응형
정수 제곱근 판별
문제 설명
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고,
n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
입출력 예#1
121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다.
입출력 예#2
3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다.
java code
class Solution {
public long solution(long n) {
long num = (long)Math.sqrt(n);
if(num*num == n){
n += (num*2)+1;
}else
n =-1;
return n;
}
}
위 코드는 입력으로 정수형 변수 n을 받아서,
n이 어떤 자연수 x의 제곱인 경우 x+1의 제곱을 반환하고,
그렇지 않은 경우 -1을 반환하는 함수(solution)입니다.
함수 내부에서는 입력값 n의 제곱근을 구한 후 num 변수에 저장합니다.
그 다음, num*num이 n과 같은 경우에는 n에 (num2)+1 값을 더해 x+1의 제곱을 계산하게 되고,
그렇지 않은 경우에는 n에 -1을 대입하여 -1을 반환하도록 처리합니다.
즉, 이 함수는 입력값 n이 어떤 자연수의 제곱인지 아닌지를 판별하고,
그에 따라 결과값을 반환합니다.
python code
import math
def solution(n):
if math.sqrt(n) == int(n**0.5):
return (math.sqrt(n)+1)**2
else :
return -1
반응형
'algorithm' 카테고리의 다른 글
[프로그래머스]핸드폰 번호 가리기 - java, python (0) | 2023.03.03 |
---|---|
[프로그래머스]순서쌍의 개수 - java, python (1) | 2023.03.03 |
[프로그래머스]가위 바위 보 - java, python (0) | 2023.03.03 |
[프로그래머스]세균 증식 - java, python (0) | 2023.03.03 |
[프로그래머스]대문자와 소문자 - java, python (0) | 2023.03.03 |
댓글