🧠 μ •μˆ˜ 제곱근 νŒλ³„

문제

μž„μ˜μ˜ μ •μˆ˜ n에 λŒ€ν•΄, n이 μ–΄λ–€ μ •μˆ˜ x의 μ œκ³±μΈμ§€ μ•„λ‹Œμ§€ νŒλ‹¨ν•˜λ € ν•œλ‹€. n이 μ •μˆ˜ x의 제곱이라면 x+1의 μ œκ³±μ„ λ¦¬ν„΄ν•˜κ³ , n이 μ •μˆ˜ x의 제곱이 μ•„λ‹ˆλΌλ©΄ -1을 λ¦¬ν„΄ν•˜λŠ” ν•¨μˆ˜λ₯Ό μ™„μ„±ν•˜λΌ.

  • n은 1이상, 50000000000000 μ΄ν•˜μΈ μ •μˆ˜μž…λ‹ˆλ‹€.

λ‚˜μ˜ 풀이

import math


def is_sqrt(n):
    return (math.sqrt(n)+1)**2 if str(math.sqrt(n)).split('.')[-1] == '0' else -1

제곱근! 을 보자마자 λƒ…λ‹€ import mathλΆ€ν„° ν–ˆλ‹€. sqrt λ©”μ†Œλ“œλ₯Ό μ΄μš©ν•΄ μ œκ³±κ·Όμ„ κ΅¬ν•΄μ„œ μœ„μ™€ 같이 ν’€μ—ˆλ‹€.

λ‹€λ₯Έ μ‚¬λžŒμ˜ 풀이

def is_sqrt(n):
    sqrt = n ** (1/2)

    if sqrt % 1 == 0:
        return (sqrt + 1) ** 2
    return 'no'

ν•˜μ§€λ§Œ ꡳ이 math λͺ¨λ“ˆμ„ import ν•΄μ„œ ν’€μ–΄λ‚Ό ν•„μš”λŠ” 없을 것 κ°™λ‹€. 이 λΆ„μ²˜λŸΌ μ œκ³±κ·Όμ„ κ΅¬ν•˜λŠ” 방법을 μ•Œμ•˜λ‹€λ©΄.. 훨씬 속도가 λΉ¨λΌμ‘Œμ„ 것이닀. μ•Œκ³ λ¦¬μ¦˜ 문제λ₯Ό ν’€ λ•ŒλŠ” λ˜λ„λ‘ μ™ΈλΆ€ λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜μ§€ μ•Šκ³  ν’€μ–΄λ‚΄λŠ” 방법을 고민해봐야겠닀.

References


Written by@ugaemi
Record things I want to remember

🐱 GitHubπŸ“š Reading Space