하다가 짜증나서 그냥 대충 범위 설정하고 틀리면 포기할려 했는데 맞네?
이런 풀이도 맞은걸로 생각해야하나
https://www.acmicpc.net/problem/14708
import math
n=int(input())
n1=math.floor(n**(1/3))
result=[]
INF=10**20
for x in range(-1000,1000):
for y in range(-1000,1000):
nx=n1+x
ny=n1+y
if nx<=0 or ny<=0:
continue
nz=math.ceil(n/(nx*ny))+1
while (nz-1)*nx*ny>=n:
nz-=1
a=[nx,ny,nz]
a.sort()
anum=nx*ny+nx*nz+ny*nz
if INF>anum:
INF=anum
result=[a]
elif INF==anum:
result.append(a)
result.sort(key = lambda x: (x[0],x[1],x[2]))
print(*result[0])
그 문제 풀이 보면 증명하는 과정이 있긴 하더라