[MOTE] 파이썬으로 재귀 완전탐색

우주먼지·2021년 2월 17일
0

Mote

목록 보기
7/15

완전탐색의 경우 정해진 원소의 개수만큼 반복문이 중첩되게 된다. 따라서 이는 재귀를 이용하여 코드를 작성하면 좀 더 보기 편해질 수 있다.

n, r = map(int, input().split())
def solution(): 
  picked = [] 
  def recur(): 
    # basecase 
    temp = ''
    if len(picked) == r: 
      for j in range(r):
        temp += chr(picked[j]+ord('a'))
      print(temp)
      return 
      
    for i in range(n): 
      if i not in picked: 
        # 1 pick 
        picked.append(i) 
        #재귀 
        recur() 
        picked.pop() 
          
  recur() 
  
solution()

위의 코드는 n개의 원소들 중에서 r개의 원소를 뽑는 모든 경우의 수를 구하는 코드이다.


위와 같이 n=4, r=2로 입력한 경우 아래와 같은 결과를 출력한다.

profile
안녕하세요 ㅎㅎ

0개의 댓글