[프로그래머스] Lv1 - 정수 제곱근 판별

김멉덥·2023년 7월 17일
0

알고리즘 공부

목록 보기
44/171
post-thumbnail
post-custom-banner

문제

프로그래머스 연습문제


코드 구현

import math

def solution(n):
    answer = -1

    if ((math.sqrt(n)).is_integer()):
        answer = int((math.sqrt(n) + 1) ** 2)

    return answer

풀이

  • math.sqrt()로 n의 제곱근을 구하고 → is_integer()로 구한 n의 제곱근이 int인지 판별
    • 맞다면 정답 계산해서 리턴
    • 아니라면 if문에 들어가지 않으므로 그대로 answer = -1이 리턴됨

What I learned

▶️ mathimport할 필요 없이 그냥 1/2를 제곱하는 식으로 제곱근을 구할 수도 있다.

(a**(1/2))

▶️ is_integer()

저런 메서드가 있는지 모르고 처음에는 isdigit()을 치다가 파이참이 오류라고 알려주며 제안해줘서 찾았던 메서드였다.
꼭 기억해두기 !!

참고 : https://icodebroker.tistory.com/entry/PYTHON-isinteger-함수를-사용해-정수-여부-구하기

value = 1.1

print(value.**is_integer()**)

"""
False
"""

▶️ 혹은 저런 메서드 없이 정수인지 판별하는 방법

a % 1 == 0

1로 나눴을 때 나머지가 0이면 정수다 … wow

profile
데굴데굴 뚝딱뚝딱 개발기록
post-custom-banner

2개의 댓글

comment-user-thumbnail
2023년 7월 17일

정말 잘 읽었습니다, 고맙습니다!

답글 달기
comment-user-thumbnail
2023년 7월 17일

많은 도움이 되었습니다, 감사합니다.

답글 달기