파이썬 프로그래밍/파이썬 심화
[Python] 파이썬 예제. 정수 제곱근 판별하기 풀이
늅이
2017. 3. 24. 14:47
본 게시글은 http://tryhelloworld.co.kr/ 에서 문제를 참고하여 풀이한 게시글입니다.
level 1 의 난이도 쉬움 문제입니다.
문제
nextSqaure함수는 정수 n을 매개변수로 입력받습니다.
n이 임의의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 임의의 정수 x의 제곱이 아니라면 'no'을 리턴하는 함수를 완성하세요.
예를들어 n이 121이라면 이는 정수 11의 제곱이므로 (11+1)의 제곱인 144를 리턴하고, 3이라면 'no'을 리턴하면 됩니다.
n이 임의의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 임의의 정수 x의 제곱이 아니라면 'no'을 리턴하는 함수를 완성하세요.
예를들어 n이 121이라면 이는 정수 11의 제곱이므로 (11+1)의 제곱인 144를 리턴하고, 3이라면 'no'을 리턴하면 됩니다.
1 2 3 4 5 6 | def nextSqure(n): # 함수를 완성하세요 return '' # 아래는 테스트로 출력해 보기 위한 코드입니다. print("결과 : {}".format(nextSqure(121))); | cs |
풀이
1 2 3 4 5 6 | import math def nextSqure(n): return pow(math.sqrt(n)+1, 2) if int(math.sqrt(n)) == math.sqrt(n) else 'no' # 아래는 테스트로 출력해 보기 위한 코드입니다. print("결과 : {}".format(nextSqure(121))); | cs |
3번째줄을 풀이하겠습니다.
pow(math.sqrt(n)+1, 2)
pow는 파이썬의 제곱함수입니다 Ex)pow(2,3)은 2의 3승이다
sqrt는 루트를 뜻합니다.
즉 121이라는 숫자가 들어왔을때, math.sqrt(n)는 11이 되고,
math.sqrt(n)+1 을 통해 12가 되겠죠?
그리고 제곱을 해서 144가 되는것입니다.
pow(math.sqrt(n)+1, 2)
11 12 144
if int(math.sqrt(n)) == math.sqrt(n)
만약에. math.sqrt(n)) == math.sqrt(n)이 참이면.
sqrt는 루트입니다. 지금 121이 들어와있죠?
그럼 11의 값들이 들어와있습니다. 즉 제곱근일때를 비교하기 위하여
11 == 11이 참이면 값을 출력하고
그것이 아닐때 'no'를 출력하게 되는것입니다.