permutation을 사용해서 가능한 수의 전체 경우의 수를 구해준 뒤 falg를 사용해 가능한 숫자들만 result에 추가하여 구할 수 있다
소스 코드
import itertools
n = int(input())
b = list(input().split(' '))
result = []
for p in itertools.permutations([0,1,2,3,4,5,6,7,8,9], n+1):
flag = True
for i in range(len(b)):
if b[i] == '<':
if p[i] < p[i+1]:
continue
else:
flag = False
break
else:
if p[i] > p[i+1]:
continue
else:
flag = False
break
if flag:
result.append(p)
print(''.join(map(str, list(max(result)))))
print(''.join(map(str, list(min(result)))))
k = int(input())
sign = list(map(str, input().split()))
visitied = [False] * 11
minResult = ""
maxResult = ""
def possible(i, j, sign):
if sign == '>':
return i > j
else:
return i < j
def solve(depth, s):
global minResult, maxResult
if depth == k + 1:
if len(minResult) == 0:
minResult = s
else:
maxResult = s
return
for i in range(10):
if not visitied[i]:
if depth == 0 or possible(s[len(s) - 1], str(i), sign[depth - 1]):
visitied[i] = True
solve(depth + 1, s + str(i))
visitied[i] = False
solve(0, "")
print(maxResult)
print(minResult)