100세까지 코딩
[백준] 10813번 공 바꾸기 (파이썬) + swap 구현 본문
문제
나의 생각
- 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]
'코딩테스트 > 파이썬' 카테고리의 다른 글
[백준] 10811번 바구니 뒤집기 (파이썬) (0) | 2024.01.09 |
---|---|
[백준] 3052번 나머지 (파이썬) + set 내장 함수 정리 (0) | 2024.01.08 |
[백준] 2562번 최댓값 (파이썬) (0) | 2024.01.08 |
[백준] 10871번 X보다 작은 수 (파이썬) (0) | 2024.01.07 |
[백준] 10807번 개수 세기 (파이썬) (0) | 2024.01.07 |