본 게시글은 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'를 출력하게 되는것입니다.
'파이썬 프로그래밍 > 파이썬 심화' 카테고리의 다른 글
[Python] 파이썬 예제. 스트링을 숫자로 바꾸기 (0) | 2017.03.26 |
---|---|
[Python] 파이썬 예제. 자릿수 더하기 (0) | 2017.03.26 |
[Python] 파이썬 예제. 제일작은 수 제거하기 풀이 (0) | 2017.03.24 |
[Python] 파이썬 예제. 짝수와 홀수 구하기 풀이 (0) | 2017.03.24 |
[Python] (초급) 파이썬 핸드폰번호 가리기 예제 (0) | 2017.03.21 |