Post
원상 복구 (small) (백준 22858번) | Gihun Son

원상 복구 (small) (백준 22858번)

💡 **Check Point !

( 해당사항 ✓체크 )

  1. 막힘 없이 수월하게 풀린 문제인가?✓

  2. 1시간이내로 풀렸던 문제인가?

  3. 1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?

  4. 시간을 써도 도무지 풀 수 없는 문제인가?

  5. 솔루션을 찾아봤는가?


난이도 체감

  1. 최상

  2. 하✓


이해도

  1. 완벽히 이해✓

  2. 다소 헷갈리는 부분들이 있음

  3. 이해 못함

Untitled

Untitled 1

나의 풀이

1
2
3
4
5
6
7
8
9
10
N,K=map(int,input().split())
Si=list(map(int,input().split()))
Di=list(map(int,input().split()))
Pi=[0]*N
tmp_list=Si[:]
for _ in range(K):
    for i in range(len(Di)):
        Pi[Di[i]-1]=tmp_list[i]
    tmp_list=Pi[:]
print(*Pi)
  • 위 문제는 쉽게 방법을 찾아서 바로 풀었다.

주의) list를 복사할 때, tmp_list=Si[:]로 하지 않고 tmp_list=Si로 복사한다면, 같은 메모리를 할당 받기 때문에, Si가 변하면 tmp_list도 변한다. 따라서 Si[:]를 쓰거나, Si.copy(), list(Si)와 같이 써주어야 한다.

다른 변수를 할당해줄 때도 마찬가지이다!

This post is licensed under CC BY 4.0 by the author.