본문 바로가기
[Baekjoon Online Judge] 풀이

[Baekjoon Online Judge] 백준 10813번: 공 바꾸기 파이썬 풀이 - 알고리즘 코딩 문제 해설 python

by codeomni 2023. 4. 4.
반응형

 

안녕하세요.

이번 포스팅은 백준 온라인 저지의 10813 문제 풀이입니다.

문제 이름은 "공 바꾸기" 입니다.

 

 

문제


문제 링크는 바로 밑의 링크를 확인해주세요.

https://www.acmicpc.net/problem/10813

 

10813번: 공 바꾸기

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

www.acmicpc.net

 

 

풀이


1
2
3
4
5
6
7
8
9
10
N, M = map(int, input().split())
num = [i for i in range(1, N+1)]
swap = 0
for _ in range(M):
    i, j = map(int, input().split())
    swap = num[i-1]
    num[i-1= num[j-1]
    num[j-1= swap
for i in num:
    print(i, end=' ')
cs

 

핵심: 리스트의 인덱스를 이용해서 i-1 과 j-1 의 자리를 교환합니다.

인덱스의 시작은 0부터 시작하기 때문에 1번 자리일 경우 -1를 한 0번을 적용합니다.

 

1. N, M을 공백 기준으로 입력 받습니다.

 

2. 1부터 N까지의 바구니를 생성합니다. 

1부터 시작하기 때문에 range의 범위를 1부터 N+1 까지로 지정합니다.

 

3. 교환 시 i와 j를 한 번에 교환할 수 없으므로 임시로 저장할 변수를 생성합니다.

 

4. for문을 사용해서 M번 반복합니다.

 

5. 바구니의 자리인 i와 j를 입력 받습니다.

 

6~8. 입력 받은 i와 j를 swap 변수를 이용해서 자리를 교환합니다.

리스트의 인덱스는 0부터 시작하기 때문에 입력 받은 i와 j를 -1 해줍니다.

 

9~10. 출력 조건에 맞게 리스트를 출력합니다.

댓글