jae_coding

(백준 알고리즘 문제풀이) 15650번 N과 M(2) 본문

알고리즘 문제/백준

(백준 알고리즘 문제풀이) 15650번 N과 M(2)

재코딩 2022. 7. 14. 18:05
반응형

문제

 

문제 링크

 

문제 접근

  • DFS
  • 백트레킹
  • itertool 모듈을 사용하지 않는 오름차순 조합문제

코드

def DFS(idx):                                  
    global result, lst, N, M                   
    if len(result) == M:                       
        temp = 0                               
        for i in result:                       
            if temp < i:                       
                temp = i                       
            else:                              
                temp = -1                      
                break                          
        if temp != -1:                         
            print(*result)                     
        return                                 
                                               
    for i in range(idx, N):                    
        if lst[i] not in result:               
            result.append(lst[i])              
            DFS(idx + 1)                       
            result.pop()                       
                                               
                                               
DFS(0)

느낀점

itertool을 사용하면 쉽지만 중복되지 않는 조합을 구하는 코드를 구현해보는 것도 쉽지많은 않다.

반응형
Comments