728x90
def perm(p_arr,used,idx):
if idx >= N:
# print(p_arr)
# 출력이 아니라, baby-gin 인지 아닌지 확인
# 0,1,2 / 3,4,5
result = 0 # run 또는 triplet 개수세기
if p_arr[0] == p_arr[1] and p_arr[0] == p_arr[2]:
result += 1
elif p_arr[0]+1 == p_arr[1] and p_arr[0]+2 == p_arr[2]:
result += 1
if p_arr[3] == p_arr[4] and p_arr[3] == p_arr[5]:
result += 1
elif p_arr[3]+1 == p_arr[4] and p_arr[3]+2 == p_arr[5]:
result += 1
# if result == 2:
# print('baby-gin!')
return result == 2
# p_arr[idx] 요소에 넣을 수 있는 모든 숫자들 다 넣어보기
# idx보다 앞선 인덱스에서 사용한 숫자는 재사용 X
for i in range(N): #모든 요소를 대상으로
if not used[i]: # i번째 요소가 사용되지 않았으면 사용가능
p_arr[idx] = arr[i]
used[i] = 1 # i번 요소 사용했음을 표시
if perm(p_arr, used, idx+1):
return True
used[i] = 0
return False
N = 6
arr = list(map(int,input()))
print(perm([0]*N, [0]*N, 0))
728x90
반응형
'TIL - 프로그래밍 > Python 알고리즘' 카테고리의 다른 글
[SWEW] 5189. 전자카트 - Python (0) | 2022.03.29 |
---|---|
[SWEA] 5188. 최소합 - Python (0) | 2022.03.29 |
[SWEA] 2105. 디저트 카페 - Python (0) | 2022.03.25 |
[SWEA] 1952. 수영장 - Python (0) | 2022.03.25 |
[SWEA] 14141. 이진수 - Python (0) | 2022.03.23 |
댓글