• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

제가 구현해보았는데 제 코드는 어떤 부분이 잘못된 건지 알려주실 수 있으신가요?

21.01.29 21:31 작성 조회수 100

0

import sys
sys.stdin = open("input.txt", "rt")
def dfs(lev, q, w, e):
global a_max
if(lev == n):
a_max = min(a_max, max(q,w,e)-min(q,w,e))
else:
dfs(lev+1, q+a[lev], w, e)
dfs(lev+1, q, w+a[lev], e)
dfs(lev+1, q, w, e+a[lev])

if __name__ == "__main__":
n = int(input())
a = list()
for _ in range(n):
a.append(int(input()))
a_max = 99999
dfs(0, 0, 0, 0)
print(a_max)

제가 구현해봤는데 어느 부분이 잘못된건지 궁금합니다.
답은 1이나오더라구요

답변 2

·

답변을 작성해보세요.

1

Jiwon님의 프로필

Jiwon

2021.03.11

저도 같은 방식으로 풀었는데 문제에서 세 총합이 모두 달라야 한다는 조건을 빠뜨렸더라고요  ㅠㅠ
강의에서 나온 세 값을 set 에 넣어서 길이가 3인지 체크하는 조건문을 추가하면 5 나와요!

0

안녕하세요^^

문제를 다시 읽어보세요. 한 가지 조건이 빠져있습니다.