Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 정렬
- 일상
- 협업
- Spring
- Operating System
- 타입스크립트
- 토이프로젝트
- 코드업
- Redux
- 리덕스장바구니
- web
- 프로그래머스
- memory
- 스프링
- react-redux
- OS
- 알고리즘
- C++
- 기초100제
- error
- 자료구조
- 공부
- 백준
- js to ts
- 파이썬
- Java
- react
- CPU 스케줄링
- codeup
- 분할메모리할당
Archives
- Today
- Total
감자튀김 공장🍟
[백준/15650] N과 M (2) (with 파이썬) 본문
반응형
✔ 문제
✔ 풀이
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
res = []
def dfs(x):
if len(res) == m:
print(' '.join(map(str, res)))
return
for i in range(x, n+1):
if i not in res:
res.append(i)
dfs(i + 1)
res.pop()
dfs(1)
✔ 설명
재귀함수를 이용해서 풀 수 있다.
for문에서 (시작, n+1)까지를 범위로 잡아 dfs를 돌면 된다.
ex) dfs(1) > res[1]
> dfs(2) > res[1, 2]
> dfs(3) > len(res) == 2 이므로 print, return
> pop() > res[1] > res[`, 3]
이런 흐름으로 진행된다.
✔ 후기
문제 보면서 dfs도 될 것 같다고는 느꼈지만 dfs로도 된다!
굳이 itertools 사용 없어도 dfs로 간단하게 풀 수 있었다.
참고:
https://jiwon-coding.tistory.com/22
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[백준/15652] N과 M (4) (with 파이썬) (0) | 2022.12.30 |
---|---|
[백준/15651] N과 M (3) (with 파이썬) (0) | 2022.12.29 |
[백준/15649] N과 M (1) (with 파이썬) (0) | 2022.12.26 |
[백준/2004] 조합 0의 개수 (with 파이썬) (0) | 2022.12.25 |
[백준/1676] 팩토리얼 0의 개수 (with 파이썬) (0) | 2022.12.24 |
Comments