πŸ“– Problem Solution/Programmers

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ •μˆ˜ 제곱근 νŒλ³„ Swift

Fomagran πŸ’» 2020. 2. 28. 14:04
728x90
λ°˜μ‘ν˜•

문제 μ„€λͺ…

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

μ œν•œ 사항

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

μž…μΆœλ ₯ 예

n return
3 -1
121 144

풀이: xλ₯Ό 1둜 μ„€μ •ν•˜κ³  while문에 x*xκ°€ n보닀 κ°™κ±°λ‚˜ μž‘μ„ λ•ŒκΉŒμ§€ λ°˜λ³΅μ„ ν•˜κ²Œ ν•œλ‹€. 그리고

x*xκ°€ n이라면 λ©ˆμΆ”κ³  x에 1을 λ”ν•œ κ°’μ˜ μ œκ³±μ„ λ°˜ν™˜ν•˜κ³  μ•„λ‹ˆλ©΄ -1을 λ°˜ν™˜ν•˜κ²Œ ν•œλ‹€.

1
2
3
4
5
6
7
8
9
10
func solution(_ n:Int64) -> Int64 {
    var x = 1
    while x*<= n {
        if x*== n {
            return Int64((x+1)*(x+1))
        }
        x += 1
    }
    return -1
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

728x90
λ°˜μ‘ν˜•