본문 바로가기
알고리즘/완전탐색

[백준][Python] 10448번 유레카 이론

by 임짠짠 2022. 7. 12.
반응형
 

10448번: 유레카 이론

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

www.acmicpc.net

 

 

코드

def check(K):
	for i in range(0,len(T)):
		for j in range(i,len(T)):
			for l in range(j,len(T)):
				if T[i]+T[j]+T[l] == K:
					return 1
	return 0

T = []
i = 1
while 1:
	num = i*(i+1)//2
	if num < 1000:
		T.append(num)	
		i+=1
	else:
		break

n = int(input())
for _ in range(n):
	K = int(input())
	print(check(K))

 

설명

T 리스트 안에 1000 이하의 삼각수를 모두 저장해놓는다.

check 함수에서는 3중 for문을 사용해서 3개의 삼각수를 더해서 K가 나오는지 확인해서 K가 나오면 1을 return해준다. for문을 빠져나올 때 까지 찾지 못하면 0을 return한다.

반응형

댓글