원상 복구 (small) (백준 22858번)
💡 **Check Point !
( 해당사항 ✓체크 )
막힘 없이 수월하게 풀린 문제인가?✓
1시간이내로 풀렸던 문제인가?
1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?
시간을 써도 도무지 풀 수 없는 문제인가?
솔루션을 찾아봤는가?
난이도 체감
최상
상
중
하✓
이해도
완벽히 이해✓
다소 헷갈리는 부분들이 있음
이해 못함
나의 풀이
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.