본문 바로가기

boj

백준 2529 부등호

https://www.acmicpc.net/problem/2529

 

2529번: 부등호

여러분은 제시된 부등호 관계를 만족하는 k+1 자리의 최대, 최소 정수를 첫째 줄과 둘째 줄에 각각 출력해야 한다. 단 아래 예(1)과 같이 첫 자리가 0인 경우도 정수에 포함되어야 한다. 모든 입력

www.acmicpc.net

글작성하다가날라가서 빡친다.

문자열로만비교함

배열을 dfs로 확장하다가,

배열이 2 이상이면:

배열의[-1][-2] 가 부등호[배열수-2)와 같지 않으면 가지친다.

 

k+1까지 살아남은 배열을 모두 리스트에 넣고,

가장작은값은 [0], 가장큰값은[-1]이 된다.

 

import sys
input=sys.stdin.readline
k=int(input())
sign=input().split()
ans_list=[]
str_range=[str(x) for x in range(10)]
def dfs(tmp):
    global min_ans
    global max_ans

    if len(tmp)>1:
        if sign[len(tmp)-2]=='<' and tmp[-2] > tmp[-1]: return
        if sign[len(tmp)-2]=='>' and tmp[-2] < tmp[-1]: return
    
    if len(tmp)==k+1:
        ans_list.append(''.join(tmp))
        
        return
            


    for i in str_range:
        if i not in tmp:
            tmp.append(i)
            dfs(tmp)
            tmp.pop()
    return
dfs([])
print(ans_list[-1],ans_list[0],sep='\n')

'boj' 카테고리의 다른 글

백준 11723 집합  (0) 2022.04.16
백준 1182 부분수열의 합  (0) 2022.04.15
백준 14889 스타트와 링크  (0) 2022.04.13
백준 14051 퇴사  (0) 2022.04.12
백준 1759 암호 만들기  (0) 2022.04.11