https://www.acmicpc.net/problem/15650
브루트 포스 탐색을 이용하여 사전순 순열을 출력하는 과정에서, 추가로 가지치기를 통해 주어진 길이와, 오름차순일 경우에만 출력하는 문제이다.
재귀함수를 이용하여 탐색한 이후, 이전 단계로 돌아와 다시 탐색을 하는 식으로 코드를 구성하였다. 그리고 가지치기 조건은 길이가 주어진 길이일 경우, 그리고 인덱스 탐색을 통해 오름차순에 해당할 경우에 출력을 해주었다.
<--CODE>
import sys
n,m=map(int, sys.stdin.readline().split())
s=[]
def bf():
if len(s) == m:
for j in range(len(s)):
for k in range(j+1,len(s)):
if s[j]>s[k]:
return
print(*s)
return
for i in range(1,n+1):
if i in s:
continue
s.append(i)
bf()
s.pop()
bf()
<-->
'Koala - 5기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/c++] 3029번 경고 (0) | 2022.02.28 |
---|---|
[BOJ/python] 2023번 신기한 소수 (0) | 2022.02.27 |
[백준/python] 1032번 명령 프롬포트 (0) | 2022.02.21 |
<6주차> [BOJ / C++] 1932번 - 정수 삼각형 (0) | 2022.02.20 |
[백준 / python] 11655번 : ROT13 (0) | 2022.02.20 |