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
- git오류
- 스택
- python자료형
- 최단거리
- DP
- 1주차(1)
- python기초
- 인텔리제이
- 5장
- git기초
- #코린이 #코딩 #할 수 있다
- python기본
- 데베시 1주차
- Workbench
- 백준
- 파이썬 알고리즘 인터뷰
- 인스타
- 참고X
- git 오류
- 코테
- 자료구조
- c언어
- 그리디
- 운체 1주차
- 4장
- Git
- c언어 제어문
- c언어 기본
- 도커
- 코딩테스트
Archives
- Today
- Total
하루살이 개발자
[BaekJoon 15650번] N과 M(2) (Python) 본문
N과 M(2) 문제입니다.
문제링크: https://www.acmicpc.net/problem/15650
15650번: N과 M (2)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
풀이
백트래킹 N과 M(1) 문제에서 "오름차순"이라는 제약조건 추가됨
따라서 기존 배열에서의 최댓값과 새로 입력할 숫자의 크기 비교하여 해결했다.
Code
n, m = map(int, input().split())
result = [0] * (m+1)
def solve(depth):
if depth == m+1: # 탈출 조건
for i in range(1, m+1):
print(result[i], end=' ')
print()
else:
for i in range(1,n+1):
if max(result) < i:
result[depth] = i # 방문한 번호 입력
solve(depth+1) # 깊이 우선 탐색
result[depth] = 0 # 방문 내용 제거
solve(1)
'코딩테스트' 카테고리의 다른 글
[프로그래머스] Level1 - 신규아이디 추천(Java) (0) | 2022.08.07 |
---|---|
[프로그래머스] Level1 - 신고결과 받기(Java) (0) | 2022.08.05 |
[BaekJoon 15649번] N과 M(1) (Python) (0) | 2022.03.01 |
[BaekJoon 20437번] 문자열 게임2(Python) (0) | 2022.02.24 |
[BaekJoon 16398번] 행성 연결 문제(Python) (0) | 2022.02.23 |