본문 바로가기
  • 안녕하세요,,, 안녕히가세요,,,,
프로그램/코딩테스트

백준 10448 유레카 이론

by 차보루타 2022. 6. 13.

 

from itertools import combinations 
import sys

input = sys.stdin.readline

tri = [n * (n + 1) // 2 for n in range(46)]

for _ in range(int(input())) :
    yes = 0 
    
    num = int(input())
    
    for i in range(1, 46) :
        for j in range(i, 46) :
            for k in range(j, 46) :
                if tri[i]+tri[j]+tri[k] == num :
                    yes = 1
    
    print(yes)

 

완전 탐색을 이용해 해결했다.

 

테스트케이스가 1000까지 이기 때문에 넉넉하게 46번째까지 미리 구해서 배열에 넣어주었다.

 

겹치지 않는 3개의 유레카 수의 합이 입력받는 값과 같아진다면 1을 출력하게 해주었다.

 

'프로그램 > 코딩테스트' 카테고리의 다른 글

백준 1931 회의실 배정  (0) 2022.06.13
백준 3085 사탕 게임  (0) 2022.06.13
백준 3040 백설 공주와 일곱 난쟁이  (0) 2022.06.13
백준 2075 N번째 큰 수  (0) 2022.06.13
백준 1935 후위 표기식2  (0) 2022.06.13

댓글