728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12934#
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
์์ด๋์ด
1. ์์ธ์๋ถํด๋ฅผ ํด์ ์ธ์๋ค์ ๋ฐฐ์ด์ ์ ์ฅํ๋ค.
2. ์ธ์๋ค ์ค ํ๋๋ผ๋ ํ์๊ฐ๋ผ๋ฉด ์ ๊ณฑ์๊ฐ ์๋๋ฏ๋ก, -1์ ๋ฆฌํด
3. ์ด๋ค ์์ x๋ฅผ ์ฐพ๊ณ (x+1)์ ์ ๊ณฑ์ ๋ฆฌํดํ๋ค.
์ ์ถ ์ฝ๋
def solution(n):
factor = [] # ์์ธ์๋ค์ ๋ฆฌ์คํธ์ ์ ์ฅํ๋ค.
i = 2
while i <= n:
if n % i == 0:
factor.append(i)
n /= i
else:
i += 1
factor_set = set(factor)
# ์๋์ ์ x ๊ตฌํ๊ธฐ!!
x = 1
for i in factor_set:
if factor.count(i) % 2 != 0: # ๊ฐ์๊ฐ ์ง์๊ฐ๊ฐ ์๋๋ฉด ์ ๊ณฑ์๊ฐ ์๋๋ค
return -1
x *= pow(i,factor.count(i)//2)
return (x+1) ** 2
๋ค๋ฅธ ์ฌ๋๋ค ํ์ด
๋ค๋ค.. sqrt ์ผ๋ค.... ํ
728x90
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > -' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค]1992๋ฒ: ์ฟผ๋ํธ๋ฆฌ (0) | 2023.05.15 |
---|---|
[๋ฐฑ์ค]2503๋ฒ: ์ซ์ ์ผ๊ตฌ (0) | 2023.05.09 |
[๋ฐฑ์ค]1018๋ฒ: ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ (0) | 2023.05.07 |
์ต์๊ณต๋ฐฐ์ ๋ฌธ์ (0) | 2023.04.15 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์ (0) | 2023.04.03 |