
안녕하세요 :)
오늘은 백준 10813번을 가지고 왔습니다.
이번 문제의 핵심은 swap을 할 수 있는 것입니다.
쉬운 예시부터 10813번까지 swap하는 방법을 정리해보겠습니다.
두개의 변수 a,b를 만들고 이 두 변수의 값을 교환해보겠습니다.
변수 tmp는 잠시 값을 저장해놓는 역할로 tmp는 temporary에서 따왔습니다.a = 1 b = 2 # swap 하는 부분 tmp = a a = b b = tmp
이번에는 10813번에 적용해보겠습니다.
교환할 바구니 번호 a, b를 입력을 받고 두 바구니의 값(공의 번호)를 교환해보겠습니다. 리스트의 인덱스는 0부터 시작하므로 a, b를 입력받았지만 실제로 값을 교환하는 인덱스는 각각 a-1, b-1입니다.
for x in range(0, m): a, b = map(int, sys.stdin.readline().split()) tmp = l[a-1] l[a-1] = l[b-1] l[b-1] = tmp
다음은 10813번 정답 코드입니다.
import sys
n, m = map(int, sys.stdin.readline().split())
l=[]
for x in range(0, n):
l.append(x+1)
for x in range(0, m):
a, b = map(int, sys.stdin.readline().split())
tmp = l[a-1]
l[a-1] = l[b-1]
l[b-1] = tmp
for s in l:
print(s, end=" ")