아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

뒤섞인 애너그램

면접 대비

메모리 제한1024 MB

요약
문자열이 주어지면 각 문자가 원래 위치에 오지 않도록 재배열한 문자열을 출력하고, 불가능하면 IMPOSSIBLE을 출력한다.
난이도

보통10점 중 5점

유형
그리디, 정렬, 문자열, 구현
정답자
아직 제출이 없습니다

문제

영문 알파벳 소문자로만 이루어진 문자열 SS가 있다. SS의 애너그램이란 SS와 같은 문자를 같은 개수만큼 포함하되 순서가 다른 문자열을 말한다. 예를 들어 kick의 애너그램으로는 kcik, ckki 등이 있다.

S[i]S[i]를 SS의 ii번째 문자라고 하자. SS의 애너그램 AA가 뒤섞인 애너그램이라는 것은 모든 ii에 대해 S[i]≠A[i]S[i] \neq A[i]임을 뜻한다. 예를 들어 kcik은 첫 번째와 네 번째 문자가 kick과 같으므로 뒤섞인 애너그램이 아니다. 반면 ckki는 kick의 뒤섞인 애너그램이고, ikkc도 그렇다.

임의의 문자열 SS가 주어졌을 때, SS의 뒤섞인 애너그램을 하나 출력하라. 그러한 문자열이 존재하지 않으면 IMPOSSIBLE을 출력한다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어지며, 각 테스트 케이스는 영문자로 이루어진 문자열 한 줄이다.

출력

각 테스트 케이스마다 Case #x: y 형식의 한 줄을 출력한다. xx는 테스트 케이스 번호(1부터 시작)이고, yy는 해당 문자열의 뒤섞인 애너그램이다. 뒤섞인 애너그램이 존재하지 않으면 IMPOSSIBLE을 출력한다.

제한

  • 1≤T≤1001 \le T \le 100.
  • 입력으로 주어지는 문자는 모두 영문 알파벳 소문자이다.

힌트

테스트 케이스 #1에서 tarts는 start의 뒤섞인 애너그램이다. 두 문자열의 같은 위치에 있는 문자가 모두 서로 다르기 때문이다. trsta도 가능한 답이다(답은 하나만 출력하면 된다). 그러나 테스트 케이스 #2에서는 jjj를 애너그램으로 바꿔 뒤섞인 애너그램을 만들 수 없으므로 IMPOSSIBLE을 출력한다.

예제1

  1. 예제 1

    입력
    2
    start
    jjj
    
    예상 출력
    Case #1: tarts
    Case #2: IMPOSSIBLE