[백준/파이썬] 9151번 Starship Hakodate-maru 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 9151번 Starship Hakodate-maru
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
주어진 수 n 이하에서
특정 수식으로 만들 수 있는 최대값을 찾는 문제입니다.
코드
def e3(n):
a=int(n**(1/3))
if (a+1)**3<=n:a+=1
return a
while True:
n=int(input())
if n==0:break
a=e3(n)
b=e3(6*n)
m=0
for i in range(a+1):
for j in range(b+1):
t=i**3+j*(j+1)*(j+2)//6
if t<=n:m=max(m,t)
print(m)
설명
가능한 i, j 범위를 큐브루트 기준으로 제한해 완전탐색하고,
t <= n을 만족하는 값 중 최댓값을 출력합니다.
댓글남기기