For Programmer
백준 2529번 파이썬 문제풀이(브루트 포스 - 부등호) 본문
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
'코팅테스트 > 백준 문제 모음' 카테고리의 다른 글
백준 10974번 파이썬 문제풀이(브루트 포스 - 모든 순열) (0) | 2021.10.24 |
---|---|
백준 10972번 파이썬 문제풀이(브루트 포스 - 다음 순열) (0) | 2021.10.23 |
백준 14889번 파이썬 문제풀이(브루트 포스 - 스타트와 링크) (0) | 2021.10.21 |
백준 14501번 파이썬 문제풀이(브루트 포스 - 퇴사) (0) | 2021.10.20 |
백준 1759번 파이썬 문제풀이(브루트 포스 - 암호 만들기) (0) | 2021.10.20 |
Comments