본문 바로가기
BOJ

백준(BOJ) 9322 철벽 보안 알고리즘(Python)

by juLeena 2022. 7. 20.

문제 내용

 

딕셔너리를 이용한 해싱으로 푼 문제.

1공개키와 2공개키를 입력받고, 1공개키의 i번 인덱스의 값이 2공개키의 j번 인덱스에 위치한다고 할 때, D[i]=j로 해싱한 뒤 암호문을 입력받아 인덱스 0부터 n-1까지 해싱된 값에 따라 L3[D[i]]를 공백으로 구분해 출력한다.

 

코드는 다음과 같다.

 

t=int(input())
for i in range(t):
    n=int(input())
    L1=input().split()
    L2=input().split()
    D={i:0 for i in range(n)}
    for j in range(n):
        for k in range(n):
            if L1[j]==L2[k]:
                D[j]=k
    L3=input().split()
    for j in range(n):
        print(L3[D[j]],end=' ')
    print()

확실히 실버 하위 문제는 생각하기도 쉽고, 풀기도 쉬운 것이 느껴진다.