세상의 모든 알고리즘
[프로그래머스 Python] 정수 제곱근 판별 본문
https://programmers.co.kr/learn/courses/30/lessons/12934
math의 sqrt라는 제곱근을 구하는 함수를 사용했습니다.
이 문제의 핵심은 제곱근을 구했을때 정확히 딱 떨어졌는지를 확인하는 것을 조건문으로 사용하는 것입니다.
초기에는 type함수를 사용해 정수값이면 출력해주려 했으나 sqrt함수를 사용하면 float 형식으로 바뀌어 불가능 합니다.
두번째 시도에는 아래처럼 int를 사용해 소수점을 다잘라주고 제곱을 한값이 n과 같으면 정확히 제곱근이 떨어진다고 볼수 있다고 생각해 이렇게 풀게 되었습니다.
'''
https://programmers.co.kr/learn/courses/30/lessons/12934
정수제곱근
문제 설명
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면
-1을 리턴하는 함수를 완성하세요.
제한 사항
n은 1이상, 50000000000000 이하인 양의 정수입니다.
느낀점
math의 sqrt라는 제곱근을 구하는 함수를 알고있어 쉽게 풀수 있었다.
'''
import math
def solution(n):
if int(math.sqrt(n)) ** 2 == n :
answer = int((math.sqrt(n)+1)) ** 2
else:
answer = -1
return answer
'python' 카테고리의 다른 글
[백준 2606번 python] 바이러스 (0) | 2021.11.05 |
---|---|
[백준 2667 python] 단지번호 붙이기 (0) | 2021.11.04 |
[백준 18352번 python] 특정 거리의 도시 찾기 (0) | 2021.11.04 |
[백준 2178번 python] 미로 탐색 문제 (0) | 2021.11.04 |
[백준 7576번 python] 토마토 문제 (0) | 2021.11.04 |