홍우진의 개발 일기장
[백준] 15649번: N과 M (1)/ 파이썬 본문
728x90
반응형
문제 링크
https://www.acmicpc.net/problem/15649
풀이 코드
n, m = map(int, input().split())
s = []
def f():
if len(s) == m:
print(' '.join(map(str, s)))
return
for i in range(1, n + 1):
if i in s:
continue
s.append(i)
f()
s.pop()
f()
코드 해석
DPS를 기반으로 풀이한다.
수열을 저장하기 위한 리스트를 생성한다.
리스트에 들어갈 수열이 m개가 되면 리스트 속의 숫자를 모두 출력 후 끝낸다.
리스트 중복여부를 확인한 후 중복이 아니라면 숫자를 리스트에 넣는다.
그 후 재귀함수 형식으로 수를 출력후 pop을 반복한다.
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 14405번: 피카츄/ 파이썬 (0) | 2022.09.20 |
---|---|
[백준] 2535번: 아시아 정보올림피아드/ 파이썬 (0) | 2022.09.20 |
[백준] 11292번: 키 큰 사람/ 파이썬 (0) | 2022.09.14 |
[백준] 13015번: 별 찍기 - 23/ 파이썬 (0) | 2022.09.13 |
[백준] 2485번: 가로수/ 파이썬 (0) | 2022.09.13 |
Comments