• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

시간복잡도 질문입니다

21.10.01 03:37 작성 조회수 131

0

def DFS(x, l, r):
if x == k:
if tmp[abs(l - r)] == 0:
tmp[abs(l - r)] = 1

else:
DFS(x + 1, l, r)
DFS(x + 1, l + a[x], r)
DFS(x + 1, l, r + a[x])


k = int(input())
a = list(map(int, input().split()))
tmp = [0] * (sum(a) + 1)
DFS(0, 0, 0)
count = 0
for x in tmp:
if x == 0:
count += 1
print(count)

 

저는 이런식으로 리스트 만들고 그 값에 해당하는 값을 1로 만들어서 푸는 방식으로 코드를 짰습니다.

채첨 프로그램으로는 100점이 나왔지만 list보다는 set를 사용하는게 시간복잡도상 좋다고 들었습니다

인터넷 검색해보니까 set 과 list 둘다 n번쨰에 element 할당이 O(1)었습니다

제코드랑 선생님의 코드랑 비교하면 set쪽이 더 빠를까요??

이런 문제를 풀떄는 list보다 set을 쓰는게 더 좋을까요??

답변 1

답변을 작성해보세요.

0

안녕하세요^^

list 나 set 이나 별 차이 없다고 생각합니다.