본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬]10811번 바구니 뒤집기

by 현장 2021. 7. 12.

-코드

n, m = map(int, input().split())
arr = [i for i in range(1, n + 1)]
for _ in range(m):
    i, j = map(int, input().split())
    arr[i - 1:j] = arr[i - 1:j][::-1]
print(*arr)

처음에 i - 1 위치와 j - 1위치를 바꾸는 문제인 줄 알고 했다가 틀리고 확인해보니 i - 1위 치에서 j - 1위 치까지 역행으로 바꾸는 것이어서 reverse를 이용하려고 했지만 범위지정이 안돼서 찾아보니 [::-1]이면 역순으로 만들어 주는  것이므로 

arr[i - 1:j] = arr[i - 1:j][::-1]같이 입력을 하면 해당 부분만 역순으로 만들어지는 것을 알게 되어 해결하였습니다.