Description

애너그램(Anagram) 이란 주어진 단어를 이루는 문자의 위치를 뒤바꾸어 새로운 단어를 만드는 것을 말합니다. 애너그램을 이용해 암호화, 복호화를 하려고합니다.

암, 복호화할 단어와 애너그램 테이블이 주어집니다. 애너그램 테이블은 단어를 암호화한 후의 문자들의 위치가 저장되어 있습니다.

예를들어 문자열 "Hello"를 암호화  할 때, 애너그램 테이블이 [4, 2, 0, 1, 3]이면, 문자열의 0번째 값인 'H'는 애너그램 테이블의 0번째 값에 해당하는 4에 의해 4번째로 이동하고 같은 방식으로 'e'는 2번째로, 'l'은 0번째로, 'l'은 1번째로, 'o'는 3번째로 이동하여 "lleoH"가 됩니다.

위의 방법으로 만들어진 애너그램 암호문을 복호화하려면 애너그램 테이블의 인덱스와 값의 반대 방향으로 문자열의 순서를 바꿔주면 됩니다.

예를들어 암호화된 문자열이 "lleoH"이고 애너그램 테이블이 [4, 2, 0, 1, 3]이면, 애너그램 테이블의 0번째 값인 4에 해당하는 문자인 'H'는 해당 인덱스인 0번째로 이동하고 같은 방식으로 'e'는 1번째로, 'l'은 2번째로, 'l'은 3번째로, 'o'는 4번째로 이동하여 "Hello"가 됩니다.

암호화할 문자열 text와 애너그램 테이블 anagram, 암호화를 할지 복호화를 할지가 저장된 변수 sw가 주어질 때 암호화 또는 복호화된 문자열을 return하도록 solution함수를 완성해 보세요.


제한 사항

  • 5 ≤ text의 길이 = anagram의 길이 ≤ 50
  • text는 대문자와 소문자 알파벳으로 이루어진 문자열 입니다.
  • 0 ≤ anagram의 원소 < text의 길이
  • anagram의 원소는 중복되지 않습니다.
  • sw는 True또는 False입니다.
  • sw가 True이면 암호화, False이면 복호화를 해야합니다.

입출력 예

text anagram sw result
"Hello" [4, 2, 0, 1, 3] True "lleoH"
"lleoH" [4, 2, 0, 1, 3] False "Hello"

입출력 예 설명

입출력 예 #1

본문과 동일합니다.

입출력 예 # 2

본문과 동일합니다.

Result Stop
Result of [Run Test] or [Submit] will be displayed here