공 바꾸기
문제는 다음과 같습니다.

이전 문제와 매우 비슷한 유형입니다. 참고하시면 좋을 거 같습니다.
https://edu-data.tistory.com/78
단계별로 풀어보기 백준_10810번
공 넣기문제는 다음과 같습니다. 문제를 요약하자면 바구니를 리스트라고 표현하고, 리스트안에 계속해서 업데이트를 해서 최종적으로 수정 된 리스트가 올바르게 출력되는 프로그램을 작성
edu-data.tistory.com
문제를 요약하자면, 1부터N만큼의 바구니를 생성하고 M번 입력을 받습니다. A,B로 입력을 받는다고 하였을 때 입력 받은 바구니 숫자를 서로 바꾸는 것 입니다. 여기서 중요한 개념인 교환 매핑이 나옵니다.
먼저 저의 해답 코드는 다음과 같습니다.
L=[]
N, M = map(int,input().split())
for j in range(1,N+1):
L.append(j)
for _ in range(M):
A,B = map(int,input().split())
L[A-1],L[B-1] = L[B-1],L[A-1]
print(" ".join(map(str,L)))
line4 까지는 바구니를 생성하는 과정입니다. M만큼 A,B를 계속해서 입력받습니다.
여기서 L[A-1],L[B-1] = L[B-1],L[A-1]은 서로의 위치를 바꾸는 역할을 합니다.
a, b = b, a는 파이썬에서 튜플 언패킹 을 사용한 예시입니다. 이 구문은 두 변수의 값을 서로 교환하는 데 사용됩니다.
- 파이썬에서 a, b = b, a는 a와 b의 값을 서로 바꾸는 방법입니다.
- 이는 실제로 내부적으로 튜플을 사용한 교환 매핑(mapping)입니다. b, a는 튜플 (b, a)로 묶이고, 이를 다시 a, b에 할당하면서 각각의 값을 교환합니다.
- a, b = b, a는 두 변수를 교환할 때 임시 변수 없이 안전하게 값을 바꿀 수 있습니다.
- 이 방식은 내부적으로 튜플을 사용하여 값이 한 번에 교환되므로 중간 값이 손실되지 않습니다. 반면 임시 변수를 사용할 경우, 그 변수를 잘못 처리하면 의도치 않은 오류가 발생할 수
'BaekJoon Reivew' 카테고리의 다른 글
단계별로 풀어보기 백준_3052번 (0) | 2025.03.21 |
---|---|
단계별로 풀어보기 백준_5597번 (0) | 2025.03.21 |
단계별로 풀어보기 백준_10810번 (0) | 2025.03.19 |
단계별로 풀어보기 백준_2562번 (0) | 2025.03.18 |
단계별로 풀어보기 백준_10818번 (0) | 2025.03.18 |