알고리즘/[python] 백준 BOJ
[python] 백준 2529 부등호
Alan_Kim
2023. 1. 17. 19:51
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
반응형