[ BOJ / Python ] 9322번 철벽 보안 알고리즘

4938 단어 bojpythonboj

이번 문제는 제 1 공개키의 단어들이 제 2 공개키에 배열되는 순서를 저장하여 암호문을 평문으로 바꾸는 방식으로 해결하였다.

  • 테스트의 수 t를 입력받는다.
  • t만큼 반복하는 i에 대한 for문을 돌린다.
  • n을 입력받는다.
  • 제 1 공개키에 해당하는 배열 key1을 입력받는다.
  • 제 2 공개키에 해당하는 배열 key2를 입력받는다.
  • 암호문에 해당하는 배열 c를 입력받는다.
  • 제 1 공개키의 단어를 제 2 공개키에 정렬한 순서를 저장할 배열 idx를 선언한다.
  • 정답을 저장할 빈 문자열 answer를 선언한다.
  • 0부터 n까지 반복하는 j에 대한 for문을 돌린다.
    -> idx 배열에 공개키 정렬 순서를 넣는다.
  • 0부터 n까지 반복하는 j에 대한 for문을 돌린다.
    -> answer에 암호문을 idx에 저장된 순서로 넣는다.
  • answer를 출력한다.

Code

t=int(input())
for i in range(t):
    n=int(input())
    key1=list(map(str, input().split()))
    key2=list(map(str, input().split()))
    c=list(map(str, input().split()))
    idx=[]
    answer=''
    for j in range(n):
        idx.append(key2.index(key1[j]))
    for j in range(n):
        answer+=(c[idx[j]]+' ')
    print(answer)

좋은 웹페이지 즐겨찾기