0부터 시작하기 때문에 처음에 if문에 걸리는 수가 가장 작은 수이다. 그 다음에 계속해서 나오는 수들은 점점 커지기 때문에 계속 MAX를 갱신.
총 세가지 경우로 나누었는데...
1. 아무 숫자도 선택이 안되어 있는 경우
2. 숫자가 들어있고 부등호가 <
3. 부등호 >
아무 숫자도 없으면 한개를 넣었다.
부등호가 <이면 현재 들어간 숫자보다 더 큰 방향으로 for문을 돌린다.
'>' 이면 작은 방향으로 for문을 돌린다.
def recu(idx):
global MIN
global MAX
if idx == n + 1:
if MIN == 0:
MIN = ''.join(map(str, s))
else:
MAX = ''.join(map(str, s))
return
if len(s) == 0:
for i in range(10):
s.append(i)
recu(idx + 1)
s.pop()
elif a[idx - 1] == '<':
for i in range(s[-1] + 1, 10):
if i not in s:
if chk(s[-1], i, a[idx - 1]):
s.append(i)
recu(idx + 1)
s.pop()
else:
for i in range(s[-1] + 1):
if i not in s:
if chk(s[-1], i, a[idx - 1]):
s.append(i)
recu(idx + 1)
s.pop()
def chk(i, j, k):
if k == '<':
return i < j
else:
return i > j
n = int(input())
a = input().split()
MIN = 0
MAX = 0
s = []
recu(0)
print(MAX)
print(MIN)