백준 10813번

도덩이의 개발 일지·2023년 6월 25일

백준

목록 보기
26/131
post-thumbnail

안녕하세요 :)
오늘은 백준 10813번을 가지고 왔습니다.

이번 문제의 핵심은 swap을 할 수 있는 것입니다.
쉬운 예시부터 10813번까지 swap하는 방법을 정리해보겠습니다.


두개의 변수 a,b를 만들고 이 두 변수의 값을 교환해보겠습니다.
변수 tmp는 잠시 값을 저장해놓는 역할로 tmp는 temporary에서 따왔습니다.

a = 1
b = 2
# swap 하는 부분
tmp = a
a = b
b = tmp

이번에는 10813번에 적용해보겠습니다.

교환할 바구니 번호 a, b를 입력을 받고 두 바구니의 값(공의 번호)를 교환해보겠습니다. 리스트의 인덱스는 0부터 시작하므로 a, b를 입력받았지만 실제로 값을 교환하는 인덱스는 각각 a-1, b-1입니다.

for x in range(0, m):
    a, b = map(int, sys.stdin.readline().split())
    tmp = l[a-1]
    l[a-1] = l[b-1]
    l[b-1] = tmp

다음은 10813번 정답 코드입니다.

import sys

n, m = map(int, sys.stdin.readline().split())

l=[]
for x in range(0, n):
    l.append(x+1)

for x in range(0, m):
    a, b = map(int, sys.stdin.readline().split())
    tmp = l[a-1]
    l[a-1] = l[b-1]
    l[b-1] = tmp

for s in l:
    print(s, end=" ")
profile
말하는 감자에서 개발자로 ( ´͈ ᵕ `͈ )◞♡

0개의 댓글