[ํ๋ก๊ทธ๋๋จธ์ค LV.0 _ Swift] Day34 ๐บ์ ๊ณฑ์ ํ๋ณํ๊ธฐ
๐ ๋ฌธ์ ๋งํฌ : https://school.programmers.co.kr/learn/courses/30/lessons/120909
import Foundation
func solution(_ n:Int) -> Int {
/* ์ฐธ๊ณ ๊ฐ๋
์ ๊ณฑ์ : ์์ฐ์๋ฅผ ์ ๊ณฑํ์ ๋ ๋์ค๋ ์
pow(๋ฐ, ์ง์)
์ ๊ณฑ๊ทผ : ์ด๋ค ์ x๋ฅผ ์ ๊ณฑํ์ฌ a๊ฐ ๋์์ ๋์ x๊ฐ
sqrt(Double ํ์
)
*/
//ํ์ด ๊ณผ์
var count = 1
while count < n {
if count * count == n { //count๋ฅผ ์ ๊ณฑํ ๊ฐ์ด n๊ณผ ๊ฐ๋ค๋ฉด, n์ ์ ๊ณฑ์์ด๋ฏ๋ก 1์ ๋ฐํ
return 1
} else {count += 1}
}
return 2 //๋ฐ๋ณต๋ฌธ์ด ์ข
๋ฃ๋ ๋๊น์ง ์ ๊ณฑ์๋ฅผ ์ฐพ์ง ๋ชปํ๋ค๋ฉด 2๋ฅผ ๋ฐํ
}
๋ฐ๋ณต๋ฌธ for๋ฌธ๊ณผ while๋ฌธ ์ค while๋ฌธ์ ์ ํํ ์ด์ ?
while๋ฌธ์ ๋ฐ๋ณต ํ์๊ฐ ๋ช ํํ์ง ์๊ณ ์กฐ๊ฑด์ด false์ผ ๋๊น์ง ์ํํ๊ธฐ ๋๋ฌธ์ ์ ํฉํ๋ค๊ณ ํ๋จ๋์๋ค.
๊ฐ๋จํ๊ฒ ๋น๊ต๋ฅผ ํด๋ณด์๋ฉด,
1. n์ Double ํ์ ์ผ๋ก ๋ณํํ์ฌ sqrt ํจ์๋ฅผ ์ฌ์ฉํด ์ ๊ณฑ๊ทผ์ ๊ตฌํ๋ค.
2.๊ตฌํ ์ ๊ณฑ๊ทผ๊ณผ ๊ตฌํ ์ ๊ณฑ๊ทผ์ Int๋ก ๋ณํ ํ Double๋ก ๋ณํ ์์ผ ์ค ๊ฐ์ด ๊ฐ๋ค๋ ์๋ฏธ๋
์๋์ ์ ๊ณฑ๊ทผ์ด ์ ์์ธ์ง๋ฅผ ํ๋ณํ๊ธฐ ์ํด์๋ค.
์๋ฅผ ๋ค์ด, n์ด 9๋ผ๋ฉด sqrt(9)๋ 3.0์ด๊ณ , Int(3.0)๋ 3, Double(3)์ 3.0์ด๋ค.
๋ ๊ฐ์ด ๊ฐ์ผ๋ฏ๋ก n์ ์ ๊ณฑ์์ธ ๊ฒ์ด๋ค.
๊ฐ๋จํ ํจ์๊ฐ ์์์ง๋ง, ๊ธฐ์ด์ ์ธ ์ ๊ณฑ๊ทผ์ ๊ฐ๋ ์ดํด๊ฐ ๋ถ์กฑํด
ํ์ง ๋ชปํ๋ ๋ฌธ์ ๊ฐ๋ค... ์ ๋๋ก ์ดํดํด์ ์์ผ๋ก ์ ์ฉํด์ ๋ค๋ฅธ ๋ฌธ์ ๋ ํ์ด ๋ณผ ๊ฒ!