kwan's note

백준-15649번 N과 M (2) 파이썬 (python code) 본문

Algorithm/python

백준-15649번 N과 M (2) 파이썬 (python code)

kwan's note 2021. 1. 12. 13:51
반응형

문제번호:15650

난이도: 실버3

 

 

 

기존 1번문제에서

reminder-by-kwan.tistory.com/47 길이가 이전숫자보다 새로 들어오는 숫자가 커야한다는 조건을 추가하였다

 

백준-15649번 N과 M (1) 파이썬 (python code)

문제번호:15649 난이도: 실버3 간단한 dfs 백트래킹 문제이다. 삼성 sds 동계알고리즘 특강을 들으며 dfs문제 이해가 오래걸려 기본문제부터 풀어보게 되었다. from sys import stdin def dfs(cnt): if(cnt==M):..

reminder-by-kwan.tistory.com

 

from sys import stdin

def dfs(cnt):
    if cnt == M:
        print(*answer)
        return
    for i in range(N):
        if (checkist[i]==False and (numlist[i]>answer[len(answer)-1 ]if len(answer) >0 else 1)):
            checkist[i]=True
            answer.append(numlist[i])
            dfs(cnt+1)
            answer.pop()
            checkist[i]=False

if __name__ == '__main__':
    N,M= map(int,stdin.readline().split())
    answer=[]
    checkist=[False]*N
    numlist=[i+1 for i in range(N)]
    dfs(0)
반응형