Dizzy999
dizzy-theme
Dizzy999
전체 방문자
오늘
어제
  • 분류 전체보기 (34)
    • Machine Learning (1)
      • 논문 리뷰 (0)
      • 수학통계 이론 (1)
      • 짧은글 (0)
    • 알고리즘 (22)
      • 알고리즘 이론 (1)
      • 알고리즘 문제 (20)
      • 짧은글 (1)
    • 프로그램 (2)
      • 프로그래밍 용어 및 상식 (1)
      • C++ (1)
    • 미니프로젝트 (0)
      • Moon Tracker (0)
    • Theme (0)
      • 짧은글 (0)
    • 아두이노&라즈베리파이 (1)
      • 아두이노 (0)
      • 라즈베리파이 (1)
    • Miscellaneous (3)
      • 이과가 이해한 Color (3)
    • OpenCV (0)
      • Tutorial (0)
    • Manim (5)
      • Tutorial (5)

블로그 메뉴

  • 홈
  • 방명록
  • 태그

공지사항

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dizzy999

dizzy-theme

알고리즘/알고리즘 이론

[리트코트-78] Subsets - Python

2021. 11. 18. 21:35

 

 

문제 소개

 

nums = [ 1 , 2 , 3 ] 이라는 집합의 모든 부분 집합을 리턴하라

출력 
[ [],[1],[2],[3],[1,2],[2,3],[1,3],[1,2,3] ]

 

 

 

사용한 알고리즘

 

더보기

 

Path를 입력값으로 가지고가는 DFS

 

 

 

Code 

 


nums=[1,2,3]

result = []

def DFS(indx,path):
    result.append(path)

    for i in range(indx,len(nums)):
        DFS(i+1,path+[nums[i]])


DFS(0,[])
result





## 아래는 특별히 길이가 2개인 순열을 찾는 DFS이다 Path를 사용한 방식은 비슷하다.
result = []
def DFS1(n_len,path):

    if len(path)==n_len:
        result.append(path)
        return

    for i in range(1,len(nums)+1):
        if i not in path:
            DFS1(n_len,path+[i])

DFS1(2,[])

 

 

 

마무리

 

DFS탐색중에 지나온 Path를 DFS함수의 인자로 사용하여 Path를 기억하는 식이다.

 

※ end

 

반응형
저작자표시 비영리 변경금지 (새창열림)
    Dizzy999
    Dizzy999

    티스토리툴바