알고리즘💻/Bruteforce&Backtracking

BOJ 10448번: 유레카 이론

호프 2021. 3. 23. 02:11

www.acmicpc.net/problem/10448

 

10448번: 유레카 이론

프로그램은 표준입력을 사용한다. 테스트케이스의 개수는 입력의 첫 번째 줄에 주어진다. 각 테스트케이스는 한 줄에 자연수 K (3 ≤ K ≤ 1,000)가 하나씩 포함되어있는 T개의 라인으로 구성되어

www.acmicpc.net

아이디어:

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))