EXCELSIOR

[Level1] 정수 제곱근 판별하기 (nextSqure) 본문

Python/알고리즘_문제

[Level1] 정수 제곱근 판별하기 (nextSqure)

Excelsior-JH 2016. 10. 15. 14:37

1. 문제

nextSqaure함수는 정수 n을 매개변수로 입력받습니다.
n이 임의의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 임의의 정수 x의 제곱이 아니라면 'no'을 리턴하는 함수를 완성하세요.
예를들어 n이 121이라면 이는 정수 11의 제곱이므로 (11+1)의 제곱인 144를 리턴하고, 3이라면 'no'을 리턴하면 됩니다.


2. 풀이


1) 내가 작성한 코드

import math
def nextSqure(n):
    # 함수를 완성하세요
    if int(math.sqrt(n)) == math.sqrt(n):
        return math.pow(int(math.sqrt(n)+1),2)
    else:
        return 'no'

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print("결과 : {}".format(nextSqure(4)));


2) 다른 풀이

def nextSqure(n):
    from math import sqrt
    return "no" if sqrt(n) % 1 else (sqrt(n)+1)**2
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print("결과 : {}".format(nextSqure(4)));

3. 알아둘 것

# ** 은 거듭제곱 연산자 이다.



Comments