코딩테스트

[python] 백준 17626 : Four Squares (실버 3)

Alpaca_data_cloud 2024. 7. 24. 14:06

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)