Coding/백준
[15651번] N과 M (3) with Python
sinabro_dy
2022. 7. 26. 18:36
문제
내가 작성한 코드
# 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문을 제거해주었습니다.
> 나머지는 코드는 모두 같습니다!!