PS/BOJ
[백준] 부등호
RUBY_루비
2020. 9. 18. 23:59
출처:: www.acmicpc.net/problem/2529
분류:: dfs
1. 문제 이해 및 해결과정
2. 풀이방법
1. python
#부등호
#https://www.acmicpc.net/problem/2529
import sys
sys.stdin = open("input.txt","r")
n=int(input())
op=input().split() #부등호
num=[False]*10
maxv,minv="","" #최대 최소
def check(i,j,op):
if op=='<':
return i<j
if op=='>':
return i>j
return True #같은 경우, 있을 수 없음
def dfs(cnt,s):
global maxv,minv
if cnt==n+1:
if not len(minv): #최솟값이 없으면, 순서대로 하므로 최솟값은 처음 나올수밖에 없음
minv=s
else: #최소값이 있으면 , 최댓값은 마지막에 저장된 것
maxv=s
else:
for i in range(10):
if num[i] == False: #아직 선택되지 않은 수 중에
if cnt==0 or check(s[-1],str(i),op[cnt-1]): #s의마지막수, 새로운숫자,부등호
num[i]=True #숫자 선택
dfs(cnt+1,s+str(i))
num[i]=False
dfs(0,"")
print("%s\n%s" %(maxv,minv))
3. 오답원인
4. 알게된 점