아이디어:
3<=K<=1000 이므로 T1~T44(=990), T45(=1035)까지 계산한 후 세 수의 합으로 표현할 수 있는지 검사해보면 된다.
검사는 그냥 삼중for문을 돌리면서 확인하는 걸로 했다.
import sys
input = sys.stdin.readline
T = []
for i in range(1,45):
T.append(i*(i+1)//2)
def sol(K):
for a in T:
for b in T:
for c in T:
if (a+b+c)==K:
return 1
return 0
t = int(input())
for _ in range (t):
K = int(input())
print(sol(K))
'알고리즘💻 > Bruteforce&Backtracking' 카테고리의 다른 글
BOJ 2993번: 세 부분 (0) | 2021.07.11 |
---|---|
BOJ 14888번: 연산자 끼워넣기 (0) | 2021.03.24 |
BOJ 2580번: 스도쿠 (0) | 2021.01.17 |
BOJ 15663번: N과 M(9) (0) | 2021.01.17 |
BOJ 9663번: N-Queen (0) | 2021.01.16 |