728x90
반응형
1. 문제 설명
2. 풀이과정
- sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
- 두 자연수를 입력받는다. N, M = map(int, sys.stdin.readline().split())
- 수열을 저장할 리스트를 생성한다. li = list()
- 수열을 생성할 함수를 정의한다. def dfs(s)
- 만약 수열의 원소 개수가 원하는 개수를 만족하면 if (len(li) == M)
- 원소를 하나씩 불러 문자열로 바꾸고 이를 공백으로 연결해 출력한다. print(' '.join(str(x) for x in li))
- 수열을 하나 구했으므로 함수를 종료한다. return
- 매개변수로 입력받은 수열의 시작 값부터 가능한 최댓값까지 가져오며 for i in range(s, N + 1)
- 가져온 값을 수열의 원소로 추가한다. li.append(i)
- 그리고 해당 값을 시작 값으로 하여 이후의 값을 수열의 원소를 추가할 수 있도록 수열을 생성하는 함수를 호출한다. dfs(i)
- 수열을 하나 생성했다면 가장 마지막에 넣은 원소를 삭제하여 바로 다음 수열을 생성할 수 있도록 한다. li.pop()
- 수열의 원소 중 최소 시작 값인 1을 함수에 넣어 함수를 호출한다. dfs(1)
반응형
3. 소스코드
import sys
N, M = map(int, sys.stdin.readline().split())
li = list()
def dfs(s):
if (len(li) == M):
print(' '.join(str(x) for x in li))
return
for i in range(s, N + 1):
li.append(i)
dfs(i)
li.pop()
dfs(1)
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 24416번 : 알고리즘 수업 - 피보나치 수 1 - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.22 |
---|---|
[백준] 14888번 : 연산자 끼워넣기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.21 |
[백준] 2580번 : 스도쿠 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.20 |
[백준] 9663번 : N-Queen - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.19 |
[백준] 15651번 : N과 M (3) - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.17 |
[백준] 2447번 : 별 찍기 - 10 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.16 |
[백준] 4779번 : 칸토어 집합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.15 |
[백준] 24060번 : 알고리즘 수업 - 병합 정렬 1 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.14 |