https://www.acmicpc.net/problem/10813
import sys
N, M = map(int, sys.stdin.readline().rstrip().split())
result = list(range(1, N + 1))
for i in range(M):
loc_1, loc_2 = map(int, sys.stdin.readline().split())
loc_1 -= 1
loc_2 -= 1
result[loc_1], result[loc_2] = result[loc_2], result[loc_1]
print(*result, sep=' ')
어렵진 않았다. 근데 주의할 점은 있었다.
처음엔 for문을 두 번 썼다.
for문으로 사용자 입력을 리스트에 저장한 뒤, 다시 for문을 돌리면서 스왑했다.
근데 굳이 메모리랑 코드를 더 짤 필요 없이 그냥 받고 바로 스왑해도 된다.
인덱싱을 할 때 항상 기준(0 또는 1)을 잘 생각해야 한다.
틀렸던 이유 중 하나도 loc_1, loc_2 값을 그대로 썼기 때문인데, result 리스트에선 인덱스가 0부터 시작하기 때문에 기준이 0이라 loc_1, loc_2 값에서 1을 빼야 한다.
출력 양식을 잘 보자.
처음엔 print(result)로 리스트를 출력해 놓고, 코드 잘못된 부분만 찾고 있었다.