강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

dev.kkim님의 프로필 이미지
dev.kkim

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

5. 동전분배하기(DFS)

시간 초과

작성

·

239

0

import sys
#sys.stdin = open("in4.txt","r")

n = int(input())
clist = []
for i in range(n):
    temp = int(input())
    clist.append(temp)

res = float('inf')

def DFS(v,a,b,c):
    global res

    if v == n:
        if a != b and b != c and c != a:
            temp = max(a,b,c) - min(a,b,c)
            if temp < res:
                res = temp
    else:
        DFS(v+1,a+clist[v],b,c)
        DFS(v+1,a,b+clist[v],c)
        DFS(v+1,a,b,c+clist[v])

DFS(0,0,0,0)
print(res)

저는 위와 같이 코드를 짜보았는데 4,5번에서 계속 시간 초과가 납니다. 선생님 코드의 효율이 더 좋은것인지 궁금하고 제가 짠 코드가 논리적으로 맞는지 궁금합니다.

답변 1

1

김태원님의 프로필 이미지
김태원
지식공유자

제 코드와 다를게 없어보입니다. 제 컴퓨터에서는 시간초과 없이 100점 나옵니다. 채점하는 컴퓨터의 성능에 따라 시간초과가 날 수 도 있습니다.

dev.kkim님의 프로필 이미지
dev.kkim

작성한 질문수

질문하기