Implementation_17_원상복구(small)(22858)

Eugenius1st·2022년 5월 5일
0

Algorithm_Baekjoon

목록 보기
97/158

Implementation17원상복구(small)(22858)

문제


위 방식을 그대로 KK번 섞은 카드의 정보와 DD의 정보를 알고 있다고 할 때, 원래 카드는 어떤 배치를 이루고 있었는지 구해보자.

입력

첫번째 줄에는 카드의 개수 NN과 카드를 섞은 횟수인 KK가 공백으로 구분되어 주어진다.
두번째 줄에는 KK번 카드를 섞은 후 카드의 배치를 의미하는 SiS_i가 공백으로 구분되어 총 NN개 주어진다.
세번째 줄에는 총 N개의 DiD_i이 공백으로 구분되어 주어진다.

출력

원래 카드의 배치를 P1P_1부터 PNP_N의 값들을 공백으로 구분해서 출력한다.

풀이

  • D[i]를 idx에 저장한다. P[idx]는 S[i]에 저장된다

코드

import sys
sys.stdin = open ("input.txt", "rt")
input = sys.stdin.readline

n,k = map(int, input().split())
s = list(map(int, input().split()))
d = list(map(int, input().split()))
length = len(d)

for _ in range(k):
    p = [0]*length
    for i in range(length):
        idx = d[i]
        p[idx-1] = s[i]
    s = p[:]
for j in p:
    print(j, end= ' ')
    

배운 것

코멘트

profile
최강 프론트엔드 개발자가 되고싶은 안유진 입니다

0개의 댓글