https://www.acmicpc.net/problem/17626
해당 문제는 너무 안풀려서 다른 사람의 코드를 참고하여 풀었다.
핵심은 최소 4개라는 것이었다.
from math import sqrt
n= int(input())
square = [0 for _ in range(n+1)]
min = 4
for i in range(n+1):
if sqrt(i) % 1 == 0:
square[i] = 1
for i in range(int(sqrt(n)),0,-1):
if square[n]:
min = 1
break
elif square[n-(i**2)]:
min = 2
break
else:
for j in range(int(sqrt(n-i**2)),0,-1):
if square[n-(i**2)-(j**2)]:
min=3
break
print(min)
'코딩테스트' 카테고리의 다른 글
[백준 python] 18111 번 : 마인크래프트 (실버 2) (0) | 2024.07.29 |
---|---|
[백준 python] 23795번 : 사장님 도박은 재미로 하셔야 합니다. (브론즈 4) (1) | 2024.07.25 |
[python] 백준 9461 번 : 파도반 수열 (실버 3) (2) | 2024.07.23 |
[python] 백준 9375 : 패션왕 신해빈 (실버 3) (0) | 2024.07.22 |
[python] 1389 번 : 케빈 베이컨의 6단계 법칙 (실버 1) (0) | 2024.07.19 |