μκ° μ ν | λ©λͺ¨λ¦¬ μ ν | μ μΆ | μ λ΅ | λ§μ μ¬λ | μ λ΅ λΉμ¨ |
---|---|---|---|---|---|
2 μ΄ | 128 MB | 20321 | 8384 | 6181 | 41.113% |
λ¬Έμ
μ΄λ€ μμ°μ Nμ κ·Έλ³΄λ€ μκ±°λ κ°μ μ κ³±μλ€μ ν©μΌλ‘ λνλΌ μ μλ€. μλ₯Ό λ€μ΄ 11=32+12+12(3κ° ν)μ΄λ€. μ΄λ° ννλ°©λ²μ μ¬λ¬ κ°μ§κ° λ μ μλλ°, 11μ κ²½μ° 11=22+22+12+12+12(5κ° ν)λ κ°λ₯νλ€. μ΄ κ²½μ°, μνμ μν¬λΌν μ€λ “11μ 3κ° νμ μ κ³±μ ν©μΌλ‘ ννν μ μλ€.”λΌκ³ λ§νλ€. λν 11μ κ·Έλ³΄λ€ μ μ νμ μ κ³±μ ν©μΌλ‘ ννν μ μμΌλ―λ‘, 11μ κ·Έ ν©μΌλ‘μ¨ ννν μ μλ μ κ³±μ νμ μ΅μ κ°μλ 3μ΄λ€.
μ£Όμ΄μ§ μμ°μ Nμ μ΄λ κ² μ κ³±μλ€μ ν©μΌλ‘ ννν λμ κ·Έ νμ μ΅μκ°μλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ μμ°μ Nμ΄ μ£Όμ΄μ§λ€. (1 ≤ N ≤ 100,000)
μΆλ ₯
μ£Όμ΄μ§ μμ°μλ₯Ό μ κ³±μμ ν©μΌλ‘ λνλΌ λμ κ·Έ μ κ³±μ νμ μ΅μ κ°μλ₯Ό μΆλ ₯νλ€.
λμ λ΅
import math
def subMaxPow(n,arr):
if n==2:
arr.append(1)
arr.append(1)
return arr
m = int(math.sqrt(n)))
arr.append(m)
return subMaxPow(n-pow(m,2))
num = int(input())
print(subMaxPow(num))
νλ Έμ΅λλΉ
κ·Έλ₯ ν΄λΉ μλ³΄λ€ μμ μ΅λμ μ κ³±μλ₯Ό κ³μ λΉΌκ°λ©΄μ 1μ΄ λμ¬ λκΉμ§ λ°λ³΅
import math
def isitPow(thing):
if not(math.sqrt(thing)-int(math.sqrt(thing))): # μ κ³±μλΌλ©΄
return 1
else:
return 0
def subMaxPow(n,l):
if isitPow(n):
return l+1
elif n==0 or n==1 or n==2 or n==3:
return l+n
tmp_arr = list()
m = int(math.sqrt(n))
half_n = int(math.sqrt(n/2))
for i in range(half_n,m+1):
tmp_arr.append(i)
min = 987654321
for obj in tmp_arr: # μ΅λ N^(1/2)
tmp = subMaxPow(n-pow(obj,2),l+1) # μ΅λ κΉμ΄ logn
if tmp<min:
min = tmp
return min
num = int(input())
tmp = subMaxPow(num,0)
print(tmp)
μκ° μ΄κ³Ό
'λ£¨νΈ 1/2*N μ΄μ λ£¨νΈ N μ΄ν'μ μλ€μ κ°μ§κ³ , νλμ© μ κ·Όνλ©΄μ μ κ³± μλ₯Ό λΉΌλ λ°©μμΌλ‘ μ¬κ·ν¨μλ₯Ό ꡬν
μμ ν보λ μ΅λ 'λ£¨νΈ N' κ°μ΄κ³ , μ¬κ·ν¨μμ κΉμ΄κ° μ΅λ 'log n'μ΄μ΄μ, μκ° λ³΅μ‘λλ N^(1/2*logn) μ΄λ€. Nμ λ²μκ° μ΅λ 10^6 κΉμ§ μ΄λ―λ‘ λ무 λ§μ μκ°μ΄ κ±Έλ¦°λ€.
κ²°κ΅ νμ§ λͺ»νμμ
λ€λ₯Έ λ΅
λ€μ΄λλ―Ή νλ‘κ·Έλλ°
μ μ΄μ©νλ λ¬Έμ
μ λ ₯λ μ μ΄μ κΉμ§μ μ κ³±μλ₯Ό μ΄μ©ν΄μ ν΄λΉ μλ₯Ό νννλ©°, ννν μλ μ£Όμ΄μ§ λ²μ κ°μΈ 100,000μ 루νΈκ°μΈ 317κΉμ§λ§ μ μ₯νλ€.
https://pacific-ocean.tistory.com/205?category=810810
κΉ¨λ¬μ μ
μμ νμ => λΆν μ 볡μΌλ‘ κ°λ μκ°μ νλ¦μ μ’μμ§λ§,
- μ λ° λͺ¨λ₯΄κ² μΌλ©΄ 1λΆν° μ¨λ³΄λ©΄μ κ·μΉμ 보μ
- λ€ λ¬΄μνκ² κ³μ°νλ κ²λ μκ°ν΄λ΄€μΌλ©΄ (μμ νμ), λ€ λ¬΄μνκ² μ μ₯νλ κ²λ μκ°ν΄λ³΄μ (λ€μ΄λλ―Ή νλ‘κ·Έλλ°)
'Algorithm λ¬Έμ > BOJ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[python]λ°±μ€ 17836λ² : 곡주λμ ꡬν΄λΌ! (0) | 2020.03.13 |
---|---|
[python]λ°±μ€ 17827λ²: λ¬ν½μ΄ 리μ€νΈ (0) | 2020.03.13 |
[python]λ°±μ€ 6549λ² : νμ€ν κ·Έλ¨μμ κ°μ₯ ν° μ§μ¬κ°ν (0) | 2020.03.06 |
[python]λ°±μ€ 1780λ² : μ’ μ΄μ κ°μ (0) | 2020.03.06 |
[python]λ°±μ€ 5620λ² : κ°μ₯ κ°κΉμ΄ λ μ μ 거리 (0) | 2020.03.01 |
Comment