🗂️ 문제
링크: https://www.acmicpc.net/problem/2529
2529번: 부등호
두 종류의 부등호 기호 ‘<’와 ‘>’가 k개 나열된 순서열 A가 있다. 우리는 이 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족시키려고 한다. 예를 들어, 제시
www.acmicpc.net
💡 접근법
- 부등호 기호 앞뒤에 넣을 수 있는 숫자 0~9를 갖는 nums 리스트로 생성한다.
- permutations를 활용하여 K+1자리수에 해당하는 순열들을 생성한다.
- 부등호에 따라 값을 비교하고 비교 결과가 옳지 않을 경우에는 break문을 통해 for 문을 빠져나온다.
- is_valid 변수를 활용하여 true일 경우, 즉 부등호에 따라 비교 결과가 옳은 순열에 대해서만 answers에 저장한다.
- answers는 오름차순으로 정렬되어 있으므로 -1번째 인덱스와 0번째 인덱스에 해당하는 값을 출력한다.
😎 내 코드
import sys
from itertools import permutations
K = int(sys.stdin.readline())
C = sys.stdin.readline().split()
nums = [n for n in range(0, 10)]
answers = []
for p in permutations(nums, K+1):
is_valid = True
for i in range(len(p)-1):
if C[i] == '<':
if p[i] > p[i+1]:
is_valid = False
break
else:
if p[i] < p[i+1]:
is_valid = False
break
if is_valid:
answers.append(p)
print(''.join(map(str, answers[-1])))
print(''.join(map(str, answers[0])))
✅ 정답 확인
'Algorithm > Baekjoon' 카테고리의 다른 글
[DP] 백준 #2579 계단오르기 - Python (0) | 2024.04.06 |
---|---|
[DP] 백준 #24416 알고리즘 수업 - 피보나치 수 1 - Python (0) | 2024.04.03 |
[스택] 백준 #3986 좋은 단어 - Python (0) | 2024.03.18 |
[정렬] 백준 #1141 접두사 - Python (0) | 2024.03.16 |
[힙] 백준 #2696 중앙값 구하기 - Python (2) | 2024.03.13 |