문제
За участието в национално състезание върху тениската на всеки спортист е бродирана малка буква от латинската азбука, която е отличителният му знак. На различните състезатели е бродирана различна буква.
Напишете програма sport, която намира всички начини за класиране на състезателите и за всяко класиране отпечатва подредбата на буквите от екипите им.
입력
На стандартния вход се въвеждат малки букви от латинската азбука, на всяка от които съответства различен състезател. Между буквите няма интервали.
출력
На стандартния изход да се изведат начините на класиране, всеки на отделен ред. Между буквите да няма интервали. Редовете трябва да са изведени в азбучен ред.
제한
Броят на състезателите не е по-малък от 3 и не е по-голям от 7.
풀이 과정
구글 번역기와 함께 풀자. 주어진 문자 수열을 가지고 만들 수 있는 문자열의 종류를 백트래킹을 이용해 구한다.
import sys, copy
input = sys.stdin.readline
arr = list(input().rstrip())
fin = len(arr)
dic = {}
arr.sort()
def backtracking(now):
global arr
global fin
if len(now) == fin:
for n in now: print(arr[n],end='')
print()
return
for i in range(fin):
if i not in now:
now.append(i)
backtracking(now)
now.pop()
backtracking([])
'-- 예전 기록 > BOJ' 카테고리의 다른 글
[ BOJ ] 24755 : Election Paradox ( SILVER 5 ) / Python (0) | 2023.04.14 |
---|---|
[ BOJ ] 1849 : 순열 ( PLATINUM 5 ) / C (0) | 2023.04.14 |
[ BOJ ] 3770 : 대한민국 ( PLATINUM 5 ) / C (0) | 2023.04.12 |
[ BOJ ] 20052 : 괄호 문자열 ? ( PLATINUM 4 ) / C (0) | 2023.04.11 |
[ BOJ ] 16978 : 수열과 쿼리 22 ( PLATINUM 4 ) / C (0) | 2023.04.10 |