<aside> 👉🏿 문제 링크

</aside>

문제 정리

<aside> 👉🏿 t : 테스트 케이스 개수가 주어진다.

다음 줄에 테스트 케이스 개수 만큼 문자열이 주어진다.

각 테스트 케이스에 대해 "케이스 # x:" 형식의 한 줄을 출력합니다.

여기서 x는 케이스 번호(1로 시작)이고 그 뒤에 문자열 순열 집합을 출력합니다.

</aside>

입력값 예시

3
abc
zxyw
p7*

출력값 예시

Case # 1:
abc
acb
bac
bca
cab
cba
Case # 2:
zxyw
zxwy
zyxw
zywx
zwxy
zwyx
xzyw
xzwy
xyzw
xywz
xwzy
xwyz
yzxw
yzwx
yxzw
yxwz
ywzx
ywxz
wzxy
wzyx
wxzy
wxyz
wyzx
wyxz
Case # 3:
p7*
p*7
7p*
7*p
*p7
*7p

접근 방법

<aside> 👉🏿 먼저 시도했던 방법은 dfs 재귀 방식으로 탐색하는 알고리즘을 작성하여 제출해봤으나,

예제는 문제 없이 출력되는데 백준 테스트에서 통과가 안됐다.

따라서 파이썬에서 지원하는 itertools.permutations() 메소드를 사용했다.

</aside>

코드 진행

<aside> 👉🏿 먼저 입력값들을 받아준다.

</aside>

def input():
    return sys.stdin.readline().strip()

n = int(input())

for i in range(n):
    q = input()

<aside> 👉🏿 itertools 사용하여 순열을 저장해준다.

</aside>

permutation = itertools.permutations(q)