백준 10813번 공 바꾸기
문제
바구니 N개에 1번부터 N번까지 번호가 매겨져 있고, 처음에는 각 바구니에 자기 번호와 같은 번호의 공이 하나씩 들어 있다. 공을 바꾸는 작업이 M번 주어지며(N, M은 1 이상 100 이하), 각 작업은 i j로 i번과 j번 바구니의 공을 서로 교환한다는 뜻이다. 모든 작업 후 1번부터 N번 바구니에 든 공의 번호를 공백으로 구분해 출력한다.
풀이
1부터 N까지 담은 리스트를 만들고, 작업마다 두 바구니의 값을 각각 변수에 꺼내 둔 뒤 서로 바꿔 대입한다. 번호는 1부터, 인덱스는 0부터 시작하므로 -1을 해서 접근한다.
basket_cnt, action_cnt = map(int, input().split())
# 바구니 번호대로 리스트 생성
result = [i for i in range(1, basket_cnt+1)]
for _ in range(action_cnt):
# 첫 바구니, 두번째 바구니 번호
first_basket, second_basket = map(int, input().split())
# 첫 공의 값과 두번째 공의 값
first_ball = result[first_basket-1]
second_ball = result[second_basket-1]
# 값을 서로 교환
result[first_basket-1] = second_ball
result[second_basket-1] = first_ball
print(' '.join(map(str, result)))