본문 바로가기
알고리즘/[python] 백준 BOJ

[python] 백준 2529 부등호

by Alan_Kim 2023. 1. 17.
728x90
반응형

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

 

2529번: 부등호

두 종류의 부등호 기호 ‘<’와 ‘>’가 k개 나열된 순서열 A가 있다. 우리는 이 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족시키려고 한다. 예를 들어, 제시

www.acmicpc.net

 

 

문제 해결

부등호를 k개 뽑기 때문에 숫자는 서로 다른 k+1개의 숫자를 뽑게 된다. (0~9)

따라서 [0,1,2,3,4,5,6,7,8,9] 에서 k+1개를 뽑는 순열을 쓴 다음 주어진 식을 만족하면 정답 리스트에 추가하는 식으로 문제를 해결했다.

마지막에 max, min 두번 찾는 것보다 sort()한번 한 다음 최댓값은 맨 뒤 원소를 꺼내고, 최솟값은 맨 앞 원소를 꺼내는 식으로 문제를 해결하였다.

 

CODE

import sys
input = sys.stdin.readline
from itertools import permutations
k = int(input())
E = list(map(str, input().split()))
ans = []
num = [i for i in range(10)]
for per in permutations(num, k+1):
    for i in range(len(E)):
        if E[i] == '<':
            if per[i] > per[i+1]: break
        else:
            if per[i] < per[i+1]: break
    else:
        ans.append(per)
ans.sort()
print(''.join(map(str,ans[-1])))
print(''.join(map(str,ans[0])))
728x90
반응형

댓글