[Beakjoon] #17626 - Four SquaresPS/백준2022. 2. 20. 21:14
Table of Contents
728x90
꽤 오랜 시간을 고민했는데 이해가 되지 않았던 문제이다 ... 기억하기 위해 기록함 !
⭐️ 문제에서 모든 자연수는 넷 혹은 그 이하의 제곱수의 합으로 표현할 수 있다고 했다. 즉 답은 1, 2, 3, 4 네개 중 하나이다.
⭐️ 자연수가 1개의 제곱수로 표현될 수 있는 조건에 대해 먼저 확인한 후 2, 3, 4 조건을 순서대로 확인해준다.
조건 | 개수 |
n의 제곱근이 정수일 때 | 1 |
정수 i에 대해 n - (i^2)의 제곱근이 정수인 경우 | 2 |
정수 i, j에 대해 n - (i^2) - (j^2)의 제곱근이 정수인 경우 | 3 |
위의 어떠한 조건에도 해당하지 않는 경우 | 4 |
def sol(n):
if int(n ** 0.5) == n ** 0.5:
return 1
for i in range(1, int(n ** 0.5) + 1):
if int((n - i ** 2) ** 0.5) == (n - i ** 2) ** 0.5:
return 2
for i in range(1, int(n ** 0.5) + 1):
for j in range(1, int((n - i ** 2) ** 0.5) + 1):
if int((n - i ** 2 - j ** 2) ** 0.5) == (n - i ** 2 - j ** 2) ** 0.5:
return 3
return 4
if __name__ == "__main__":
n = int(input())
print(sol(n))
참고
728x90
'PS > 백준' 카테고리의 다른 글
[Beakjoon] #11055 - 가장 큰 증가 부분 수열 (0) | 2022.08.01 |
---|---|
[Beakjoon] #9465 - 스티커 (0) | 2022.08.01 |
[Baekjoon] #10994 - 별 찍기 - 19 (0) | 2022.02.19 |
[Beakjoon] #14916 - 거스름돈 (0) | 2022.02.17 |
[Baekjoon] #1966 - 프린터 큐 (0) | 2022.02.14 |
@TTOII :: 뭉게뭉게 클라우드
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!