코팅테스트/백준 문제 모음
백준 2529번 파이썬 문제풀이(브루트 포스 - 부등호)
유지광이
2021. 10. 23. 16:10
728x90
코드
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)
-> 아무리 생각해도 재귀로 이런 코드를 처음에 바로 생각해내는것이 쉽지않다.... 대부분 재귀로 DFS문제를 풀면 위와 같은 식으로 푸는 대도 해당 코드를 생각하지 못하는 내가 멍청하다는 생각이 든다... 하지만 포기할 수 없다. 반복만이 살길이다..
728x90