관리 메뉴

오늘도 배운다

정수 제곱근 판별 / 프로그래머스, 파이썬 코딩테스트 연습 연습문제 본문

코딩테스트연습(파이썬)

정수 제곱근 판별 / 프로그래머스, 파이썬 코딩테스트 연습 연습문제

LearnerToRunner 2022. 11. 21. 11:29

문제

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

 

 

제출답안

def solution(n):

	# 제곱근
    n_sqr = n**0.5
    
    # Floor(제곱근)
    x = int(n_sqr)
    
    # 제곱근이 정수라면 x로 나누었을 때 0이 되어야하는 것을 이용
    answer = (x+1)**2 if n_sqr % x == 0.0 else -1
    
    return answer

 

 

제출 후 개선답안

 

정수일 경우 1로 나눴을 때 나머지가 0인 것을 이용
나머지가 0이 아니면 소수점이 있다는 뜻
def solution(n):

	# 제곱근
    n_sqr = n**0.5
       
    # 제곱근이 정수라면 x로 나누었을 때 0이 되어야하는 것을 이용
    answer = (n_sqr+1)**2 if n_sqr % 1 == 0.0 else -1
    
    return answer

 

    x = int(n_sqr)​

 

위 코드 한 줄을 더 줄일 수 있게 됨

 

 

문제 바로가기

 

728x90
Comments