내 코드
def solution(n):
answer = 0
for i in range(1,n+1):
if i*i==n:
return (i+1)**2
return -1
숫자 범위만큼 i를 for문으로 돌리고 i*i가 n일 순간을 찾는다. 1을 예외처리 해주기 위해 n+1까지 범위로 잡았다.
다른사람 코드
문제가 바껴 다른 사람 코드는 좀 출력문이 다르다. 그래도 비슷하니까 코드를 보겠다!
def nextSqure(n):
sqrt = n ** (1/2)
if sqrt % 1 == 0:
return (sqrt + 1) ** 2
return 'no'
(1/2)를 제곱하면 제곱근이 된다는걸 까먹고있었다.. 이건 그걸 이용해서 푼 문제이다.
import math
def nextSqure(n):
# 함수를 완성하세요
return 'no' if not math.sqrt(n).is_integer() else (math.sqrt(n)+1)**2
math 라이브러리를 사용한다. from math import sqrt를 사용해도 된다.
is_integer()라는것이 있는지 처음 알았다!
'코딩테스트 > Python' 카테고리의 다른 글
[프로그래머스] 문자열 다루기 기본 (2) | 2021.07.30 |
---|---|
[프로그래머스] 수박수박수박수박수박수? (0) | 2021.07.30 |
[프로그래머스] 이상한 문자 만들기 - 글 작성 중 (0) | 2021.07.30 |
[프로그래머스] 제일 작은 수 제거하기 (0) | 2021.07.29 |
[프로그래머스] 짝수와 홀수 (0) | 2021.07.29 |