Problem Solving Log

[BOJ] 10813 : 공 바꾸기 (Python)

TypeMIN 2023. 8. 21. 20:17
728x90

Baekjoon Online Judge 10813번 : 공 바꾸기


문제

도현이는 바구니를 총 $N$개 가지고 있고, 각각의 바구니에는 1번부터 $N$번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 들어있다.

도현이는 앞으로 $M$번 공을 바꾸려고 한다. 도현이는 공을 바꿀 바구니 2개를 선택하고, 두 바구니에 들어있는 공을 서로 교환한다.

공을 어떻게 바꿀지가 주어졌을 때, $M$번 공을 바꾼 이후에 각 바구니에 어떤 공이 들어있는지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 $N$ ($1 \leq N \leq 100$)과 $M$ ($1 \leq M \leq 100$)이 주어진다.

둘째 줄부터 $M$개의 줄에 걸쳐서 공을 교환할 방법이 주어진다. 각 방법은 두 정수 $i$ $j$로 이루어져 있으며, $i$번 바구니와 $j$번 바구니에 들어있는 공을 교환한다는 뜻이다. ($1 \leq i \leq j \leq N$)

도현이는 입력으로 주어진 순서대로 공을 교환한다.

출력

1번 바구니부터 $N$번 바구니에 들어있는 공의 번호를 공백으로 구분해 출력한다.

예제 입력

5 4
1 2
3 4
1 4
2 2

예제 출력

3 1 4 2 5

코드

# N과 M을 입력
input_str = input()
input_list = input_str.split()
N = int(input_list[0])
M = int(input_list[1])

# N개의 바구니에 1부터 N까지의 공을 넣기
basket = [i+1 for i in range(N)]

# for문을 이용하여 M번의 입력을 받아 바구니에 공 바꾸기
for _ in range(M):
  # i와 j를 입력
  input_str = input()
  input_list = input_str.split()
  i = int(input_list[0])
  j = int(input_list[1])
  # i번 바구니와 j번 바구니에 들어있는 공 바꾸기
  temp = basket[i-1]
  basket[i-1] = basket[j-1]
  basket[j-1] = temp

# for문을 이용하여 바구니에 들어있는 공의 번호 출력
for i in range(N):
  print(basket[i], end=' ')
728x90
반응형