코딩테스트/파이썬
[백준] 10813번 공 바꾸기 (파이썬) + swap 구현
100세까지 코딩
2024. 1. 8. 16:45
문제

나의 생각
- list를 번호에 맞게 초기화한다.
- swap을 시킨다.
나의 풀이
N,M = map(int,input().split())
bucket_list = [i for i in range(1,N+1)]
for _ in range(M):
i,j = map(int,input().split())
temp = bucket_list[i-1]
bucket_list[i-1] = bucket_list[j-1]
bucket_list[j-1] = temp
print(*bucket_list)
참고
1. 리스트 초기화 방법
- 리스트 컴프리헨션 (i를 활용하여 여러 방법 가능, if문도 사용 가능)
bucket_list = [i for i in range(m)]
- 언팩킹 (0~m-1까지 순서대로 저장)
bucket_list = [*range(m)]
- 곱셈 표현 (특정값으로만 가능)
bucket_list = [0] * m
2. Swap 구현 방법
- C, Java에서도 사용 가능한 일반적인 방식
temp = bucket_list[i]
bucket_list[i] = bucket_list[j]
bucket_list[j] = temp
- Python에서만 가능한 방식
bucket_list[i], bucket_list[j] = bucket_list[j], bucket_list[i]