관리 메뉴

100세까지 코딩

[백준] 10813번 공 바꾸기 (파이썬) + swap 구현 본문

코딩테스트/파이썬

[백준] 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]