알고리즘

백준 파이썬 10811 바구니 뒤집기

chaewonni 2023. 9. 7. 12:56

🚀접근하기

 배열에서 두 항목을 교환시켜 결국엔 사용자가 원하는대로 바구니를 뒤집어주면 되는 문제

🎉코드

N, M = map(int, input().split())

basket=[]

for i in range(0, N+1):
    basket.append(i)

for i in range(M):
    s1, s2 = map(int, input().split())

    while(s1 < s2):
        basket[s1], basket[s2] = basket[s2], basket[s1]
        s1 += 1
        s2 -= 1

for i in range(1, N+1):
    print(basket[i], end=' ')

 

문자열을 받아 공백을 기준으로 split 시키고, map 함수를 이용하여 s1, s2에 넣어주었다. 
또한 이번에 새로 알게된 것이 있는데, 배열에서 두 개의 항목을 교환할 때 따로 swap 변수를 만들어줄 필요 없이 
basket[s1], basket[s2] = basket[s2], basket[s1] 이렇게 써주면 바로 교환이 된다는 것을 알게 되었다.
 
따라서 s1 < s2 일 동안 두 항목을 교환시켜주고, s1은 1씩 증가, s2는 1씩 감소시켜주면 된다.

💪다짐

map 함수등 다양한 파이썬 함수들을 더 많이 배워 사용해야겠다