
딕셔너리를 이용한 해싱으로 푼 문제.
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()
확실히 실버 하위 문제는 생각하기도 쉽고, 풀기도 쉬운 것이 느껴진다.
'BOJ' 카테고리의 다른 글
백준(BOJ) 9663 N-Queen(Python) (0) | 2022.07.22 |
---|---|
백준(BOJ) 1946 신입 사원(Python) (0) | 2022.07.21 |
백준(BOJ) 13460 구슬 탈출 2(Python) (0) | 2022.07.20 |
백준(BOJ) 2162 선분 그룹(Python) (0) | 2022.07.19 |
백준(BOJ) 2143 두 배열의 합(Python) (0) | 2022.07.19 |