최종 제출 코드
n = int(input())
array = [">"] + list(input().split())
stack = ['99']
visited = [False]*11
max_value = '0'
min_value = '9999999999'
def dfs():
global max_value
global min_value
if len(stack) == n+2:
result = ''.join(stack[1:])
if max_value < result:
max_value = result
if min_value > result:
min_value = result
return
for i in range(1, 11):
if visited[i] != True:
if array[len(stack)-1] == "<" and stack[-1] < str(i-1) or array[len(stack)-1] == ">" and stack[-1] > str(i-1):
stack.append(str(i-1))
visited[i] = True
dfs()
stack.pop()
visited[i] = False
dfs()
print(max_value)
print(min_value)
◼️ 부등호를 array에 받아서 stack에 값을 추가할 때 조건 검사
stack의 원소는 최소값과 최대값을 출력할 때 수월하도록 문자열로 저장stack에 무조건 추가되도록 stack의 첫번째 원소를 '99'로 놓고, array의 첫번째 원소는 '>'로 놓는다.0-9의 모든 값은 99보다 작기 때문에 첫번째 대입되는 숫자는 무조건 stack에 추가된다.stack의 초기값을 10으로 뒀었는데, 이렇게하면 2부터는 10보다 큰 값이 되어 stack에 추가되지 않는다.stack의 길이가 n과 같아지면, stack의 첫번째 원소(99)를 제외한 원소들을 문자열로 만들어 최소값과 최대값을 업데이트한다.
정리가 잘 된 글이네요. 도움이 됐습니다.