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

코딩왕님의 프로필 이미지
코딩왕

작성한 질문수

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

5. 동전분배하기(DFS)

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

작성

·

139

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

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

0

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

안녕하세요^^

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

코딩왕님의 프로필 이미지
코딩왕

작성한 질문수

질문하기