RUBY

[백준] 부등호 본문

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. 알게된 점

 

'PS > BOJ' 카테고리의 다른 글

[백준] 부분합  (0) 2020.09.21
[백준] 로봇 청소기 | 삼성  (0) 2020.09.20
[백준] 소수의 연속합  (0) 2020.09.18
[백준] 랜선자르기  (0) 2020.09.17
[백준] 음악프로그램  (0) 2020.09.17
Comments