Wacky_Life

 

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

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

programmers.co.kr

 

 

문제 설명

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

 

 

제한 사항

  • n은 1이상, 50000000000000 이하인 양의 정수입니다.

 

 

입출력 예

n return
121 144
3 -1

 

입출력 예

- 입출력 예#1

121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다.

 

- 입출력 예#2

3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다.

 

 

코드

1
2
3
4
5
6
7
8
import math
 
def solution(n):
    if int(math.sqrt(n)) == math.sqrt(n):
        answer = pow(math.sqrt(n)+12)
    else:
        answer = -1
    return answer
cs

4~5번째 줄 : 입력받은 n이 제곱수라면 int를 씌운 값과 안 씌운 값의 결과가 같게 되고 answer에 n에 +1을 더해 제곱한 값을 넣는다. 

7번째 줄 : 제곱 수가 아니라면 answer에 -1을 넣는다. 

 

1
2
3
4
import math
 
def solution(n):
    return -1 if math.sqrt(n) % 1 else (math.sqrt(n)+1** 2
cs

위와 같은 내용을 return에 한 줄로 표현 가능 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading