문제

내가 작성한 코드
# N, M 입력
n, m = map(int, input().split())
s = []
def dfs():
if len(s) == m:
print(' '.join(map(str, s)))
return
for i in range(1, n + 1):
s.append(i)
dfs()
s.pop()
dfs()
> 처음으로 백트래킹 맞췄다!!!
> 점점 감을 잡아가는 듯!!!
코드 설명
n, m = map(int, input().split())
s = []
> 여기는 N과 M 값을 받는 변수이고, s 라는 빈 리스트를 생성해서 값을 출력시키기 위한 리스트입니다.
def dfs():
if len(s) == m:
print(' '.join(map(str, s)))
return
for i in range(1, n + 1):
s.append(i)
dfs()
s.pop()
> 이번 N과 M 문제는 중복되는 값이 나와도 될 뿐만 아니라, 같은 수가 나와도 된다는 점입니다.
> 이전에는 for 문 안에 if i not in s : 라는 if 문을 사용해서 같은 수를 제거하기 위한 코드를 작성했었는데, 이번에는 같은 수가 나와야 되므로 if문을 제거해주었습니다.
> 나머지는 코드는 모두 같습니다!!
'Coding > 백준' 카테고리의 다른 글
| [20291번] 파일 정리 with Python (0) | 2022.07.28 |
|---|---|
| [9663번] n-Queen with Python (★) (0) | 2022.07.27 |
| [15650번] 백트래킹 - N과 M(2) with Python (★) (0) | 2022.07.26 |
| [15649번] 백 트래킹 - N과 M(1) with Python (★) (0) | 2022.07.26 |
| [10773번] 제로 with Python (0) | 2022.07.26 |