path 배열안에 문자를 비교하면서 조합을 출력하는 방법 (참고용… 쓰지말기)
arr=['a','b','c','d']
path=['']*3
def abc(level):
if level==3:
for i in range(3):
print(path[i],end='')
print()
return
for i in range(4):
#1 path[level-1] -> 그전 단계에서 타고 들어온 곳
#2 arr[i] -> 앞으로 들어갈 가지
#3 그전 들어온 가지 < 앞으로 들어갈 가지 (True)
if level>0 and path[level-1] >= arr[i]: continue
path[level]=arr[i]
abc(level+1)
abc(0)
for문의 i값의 변화를 이용한 조합 출력하기
A B C
A B D
A C D
B C D
arr=['a','b','c','d']
path=['']*3
def abc(level,start):
if level==3:
print(*path)
return
for i in range(start,4):
path[level]=arr[i]
abc(level+1,i+1)
abc(0,0) #level start
for문의 i값의 변화를 이용한 중복조합 출력하기
A A A
A A B
A A C
A A D
A B B
A B C
A B D
A C C
A C D
A D D
B B B
B B C
B B D
B C C
B C D
B D D
C C C
C C D
C D D
D D D
arr=['a','b','c','d']
path=['']*3
def abc(level,start):
if level==3:
print(*path)
return
for i in range(start,4):
path[level]=arr[i]
abc(level+1,i)
abc(0,0) #level start
'파이썬 알고리즘' 카테고리의 다른 글
[파이썬] 백준 1436 영화감독 숌 (부르트포스) (0) | 2022.11.30 |
---|---|
[파이썬] SWEA SW 문제해결 응용 7일차 - 행렬찾기 (0) | 2022.11.14 |
재귀로 순열 풀어보기 (0) | 2022.10.31 |
재귀함수로 누적합 구하기 (0) | 2022.10.31 |
SWEA 1208 Flatten (0) | 2022.10.31 |