๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
3๏ธโƒฃ Swift/Problem Solving

[Swift Algorithm] ์ •์ˆ˜ ์ œ๊ณฑ๊ทผ ํŒ๋ณ„ Programmers(Lv.1)

by seolhee2750 2021. 6. 7.
๋ฌธ์ œ ํ’€์ด

์ž„์˜์˜ ์–‘์˜ ์ •์ˆ˜ n์— ๋Œ€ํ•ด, n์ด ์–ด๋–ค ์–‘์˜ ์ •์ˆ˜ x์˜ ์ œ๊ณฑ์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋‹จํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.
n์ด ์–‘์˜ ์ •์ˆ˜ x์˜ ์ œ๊ณฑ์ด๋ผ๋ฉด x+1์˜ ์ œ๊ณฑ์„ ๋ฆฌํ„ดํ•˜๊ณ , n์ด ์–‘์˜ ์ •์ˆ˜ x์˜ ์ œ๊ณฑ์ด ์•„๋‹ˆ๋ผ๋ฉด -1์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”.

 

์ œํ•œ ์กฐ๊ฑด
  • n์€ 1์ด์ƒ, 50000000000000 ์ดํ•˜์ธ ์–‘์˜ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ
n return
121 144
3 -1

 

๋‚ด ๋ฌธ์ œ ํ’€์ด
import Foundation

func solution(_ n:Int64) -> Int64 {
    let x = Int64(sqrt(Double(n)))
    return x * x == n ? (x + 1) * (x + 1) : -1
}
  • sqrt ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž…๋ ฅ๋ฐ›์€ ์ˆ˜์˜ ์ œ๊ณฑ๊ทผ์„ ๊ตฌํ•˜์˜€์Œ
  • ๊ตฌํ•œ ์ œ๊ณฑ๊ทผ์„ ๋‹ค์‹œ ๊ณฑํ–ˆ์„ ๋•Œ n์ด ์ถœ๋ ฅ๋˜๋Š”์ง€ ๊ฒ€์‚ฌํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํ„ดํ•˜์˜€์Œ

 

๐Ÿ’ก ํ”ผ๋“œ๋ฐฑ
  • sqrt ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
    sqrt ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ๊ณต๋ถ€ํ•˜์—ฌ ์ •๋ฆฌ ๊ฒŒ์‹œ๊ธ€์„ ์ž‘์„ฑํ•ด๋ด์•ผ๊ฒ ๋‹ค.
  • ๋ฐ”๋กœ ์ง์ „ ๊ฒŒ์‹œ๊ธ€์ธ ์ •์ˆ˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ ๋ฌธ์ œ์— ์ด์–ด์„œ ๋˜ Int64๊ฐ€ ๋“ฑ์žฅํ–ˆ๋‹ค.
    ๋นจ๋ฆฌ ๊ณต๋ถ€๋ฅผ ํ•ด๋ด์•ผ๊ฒ ๋‹ค,,

 


 

๋ฌธ์ œ

https://programmers.co.kr/learn/courses/30/lessons/12934

๋Œ“๊ธ€