백준 2529 : 부등호 (파이썬)
정답코드
N = int(input())
arr = list(input().split())
visited = [False for i in range(10)]
maxV, minV = '0', '9999999999'
pos = 0
tempArr = []
def dfs(cnt):
global maxV, minV, pos
if cnt == N + 1:
temp = ''.join(map(str, tempArr))
if int(maxV) < int(temp):
maxV = temp
if int(minV) > int(temp):
minV = temp
return
for i in range(10):
if not visited[i]:
if len(tempArr) > 0:
if arr[pos] == '<':
if i > tempArr[-1]:
visited[i] = True
pos += 1
tempArr.append(i)
dfs(cnt + 1)
tempArr.pop()
pos -= 1
visited[i] = False
else:
if i < tempArr[-1]:
visited[i] = True
pos += 1
tempArr.append(i)
dfs(cnt + 1)
tempArr.pop()
pos -= 1
visited[i] = False
else:
visited[i] = True
tempArr.append(i)
dfs(cnt + 1)
tempArr.pop()
visited[i] = False
dfs(0)
print(maxV)
print(minV)
문제유형
백트랙킹(DFS)
Author And Source
이 문제에 관하여(백준 2529 : 부등호 (파이썬)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yibangwon/백준-2529-부등호-파이썬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)