728x90
반응형
https://www.acmicpc.net/problem/2529
문제 해결
부등호를 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
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 1182 부분수열의 합 (0) | 2023.01.19 |
---|---|
[python] 백준 11723 집합 (0) | 2023.01.18 |
[python] 백준 15661 링크와 스타트 (0) | 2023.01.16 |
[python] 백준 14501 퇴사 (0) | 2023.01.15 |
[python] 백준 6603 로또 (0) | 2023.01.12 |
댓글