백준 #2529 부등호
코드
import sys
sys.stdin = open("input.txt")
def check(a, b, sign):
if sign == "<":
return a < b
else:
return a > b
def solve(cnt):
global max_value, min_value
if cnt == n + 1:
value = "".join(result)
if int(min_value) > int(value):
min_value = value
if int(max_value) < int(value):
max_value = value
return
for i in range(10):
if not visited[i]:
# 처음 들어가는 숫자일 경우 그리고 부등호 체크르 or을 사용하여 한줄에 쓰기
if len(result) == 0 or check(int(result[-1]), i, arr[cnt - 1]):
visited[i] = True
result.append(str(i))
solve(cnt + 1)
visited[i] = False
result.pop()
n = int(input())
arr = list(input().split())
min_value = "9999999999"
max_value = "-1"
result = []
visited = [False] * 10
solve(0)
print(max_value)
print(min_value)
풀이
len(result) == 0 or check(int(result[-1]), i, arr[cnt - 1])
이부분은 처음에는 바로 생각하지 못하였다.
처음에는 cnt == 0
인 경우와 아닌 경우로 나누어서 풀었는데 코드가 너무 지저분해 보여서
맞은 유저들의 풀이들을 보다가 or
를 사용한게 정말 인상적이여서 나도 적용해보았다. (lunarstella
님 코드 참고)
아직 많이 부족하다 ㅠㅠ
댓글남기기