문자열에 str처리해서 더하면 되는것을.. list만드는 병에 걸려서..
문제 보자마자 중복없는 순열에 DFS넣을때마다 부등호 바꿔주는 조건. N과M(12)까지 다 풀었다면 아이디어 자체는 어렵지 않다.
n = int(input())
inequality = input().split()
check = [False] * 10
max, min = "", ""
def possible(i, j, k):
if k == '<':
return i < j
if k == '>':
return i > j
return True
def DFS(depth, s):
global max, min
if depth == n + 1:
if not len(min):
min = s
else:
max = s
return
for i in range(10):
if not check[i]:
if depth == 0 or possible(s[-1], str(i), inequality[depth - 1]):
check[i] = True
DFS(depth + 1, s + str(i))
check[i] = False
DFS(0, "")
print(max)
print(min)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 9242 폭탄해제 (0) | 2021.07.17 |
---|---|
[백준][Python] 4446 ROT12 (1) | 2021.07.17 |
[백준][PYTHON] 15649 15650 N과 M (1),(2) (0) | 2021.07.14 |
[백준][Python] 13398 연속합 2 (0) | 2021.07.11 |
[백준][Python] 1717 : 집합의표현 (0) | 2021.07.10 |