본문 바로가기
알고리즘

[Python] 백준 10813 공바꾸기

by noddu 2023. 6. 12.
728x90
반응형

 

[Python] 10813번 문제

 

반응형

 


 

 

풀이
n,m = map(int, input().split())
basket = [0]*n
temp = 0

바구니의 개수 N과 공 바꿀 횟수 M을 입력받습니다.

나중에 사용할 temp라는 변수는 0으로 초기화합니다.

 

 

for x in range(n):
  basket[x] = x+1

basket의 0번째 = 1, 1번째 = 2가 들어가야 하니

x값을 1 더해서 넣어줍니다.

 

 

for x in range(m):
  i,j = map(int, input().split())
  temp = basket[i-1]
  basket[i-1] = basket[j-1]
  basket[j-1] = temp

공을 바꿀 횟수 M을 이용해 for문을 사용하고 그만큼 바꿀 두 바구니 i, j를 입력받습니다.

두 수를 입력받으면 두 공의 번호를 Swap 하기 위해서 한 공을 temp라는 변수에 임시로 넣어두고 치환합니다.

이때 1번 공은 basket의 0번째 인덱스이므로 i, j는 -1씩 해줍니다.

 

 

for x in range(n):
  print(basket[x], end=" ")

이제 바뀐 공들을 출력하기 위해 바구니 N만큼 반복하고

공백 있게 한 줄로 출력하기 위해 end=" "를 붙여줍니다.

 

 

 

 


 

정답
n,m = map(int, input().split())
basket = [0]*n
temp = n+1

for x in range(n):
  basket[x] = x+1

for x in range(m):
  i,j = map(int, input().split())
  temp = basket[i-1]
  basket[i-1] = basket[j-1]
  basket[j-1] = temp

for x in range(n):
  print(basket[x], end=" ")

 

반응형

'알고리즘' 카테고리의 다른 글

[Python] 백준 1546 평균  (0) 2023.06.21
[Python] 백준 10811 바구니 뒤집기  (0) 2023.06.21
[Python] 백준 3052 나머지  (0) 2023.06.21
[Python] 백준 5597 과제 안 내신 분..?  (0) 2023.06.13
[Python] 백준 10810 공 넣기  (0) 2023.06.12