728x90
반응형
핵심 포인트
- 반복문 : for문
제출코드
N, M = map(int, input().split())
switch = [map(int, input().split()) for _ in range(M)]
backets = [i + 1 for i in range(N)]
for i, j in switch:
old_i, old_j = backets[i - 1], backets[j - 1]
backets[i - 1], backets[j - 1] = old_j, old_i
print(' '.join(map(str, backets)))
해설
switch 리스트에서는 각 바구니에 들어있는 공을 바꾸는 정보를 넣어주고 backets 리스트에는 현재 바구니안에 들어있는 공의 번호를 넣어줍니다. 초기화는 [1, 2, 3, 4, 5]로 i번 바구니에 i번 공이 들어있는 상태입니다.
이제, switch 리스트를 하나씩 순회하면서 i번 바구니와 j번 바구니에 원래 들어가 있던 공의 번호 old_i와 old_j를 추출합니다. 그 다음에 순서를 바꾸어 j번째 바구니에는 old_i를 넣어주고 i번째 바구니에는 old_j를 넣어주면 됩니다.
위 과정을 모두 반복하면 최종적으로 바뀐 바구니안의 공을 출력할 수 있습니다.
참고자료 및 그림출처
728x90
반응형
'Programming > Coding Problem' 카테고리의 다른 글
BOJ 10811번: 바구니 뒤집기 (0) | 2023.05.17 |
---|---|
BOJ 5597번: 과제 안 내신 분..? (0) | 2023.05.16 |
BOJ 10810번: 공 넣기 (0) | 2023.05.13 |
BOJ 10807번 : 개수 세기 (0) | 2023.05.12 |
BOJ 25304번 : 영수증 (0) | 2023.03.08 |