본문 바로가기
Algorithm./BackJoon

백준 python : 10811 바구니 뒤집기

by dev챙 2023. 12. 23.

✔️ 문제

🗝️ 풀이 및 답

파이썬 풀이

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


arr = [i for i in range(1, N+1)]
temp = 0

for _ in range(M):
    i, j = map(int, input().split())
    temp = arr[i-1:j]
    temp.reverse()
    arr[i-1:j] = temp

for x in range(N):
  print(arr[x], end=" ")

리스트의 reverse() 함수

새로운 리스트를 생성하지 않고 기존 리스트 내의 원소들을 제자리에서(in place) 역방향으로 재배치

letters = ['A', 'B', 'C', 'D', 'E']

print(letters) # ['A', 'B', 'C', 'D', 'E']

letters.reverse()

print(letters) # ['E', 'D', 'C', 'B', 'A']
  • 어떤 리스트를 상대로 reverse() 함수를 호출하면 실제로 해당 리스트에 변경을 가해진다는 것
  • 리스트 객체의 reverse() 함수가 아무것도 반환하지 않으므로 역순으로 재배치된 새로운 리스트를 만들어내는 것이 아니기 때문에 None을 반환

reversed() 함수로 거꾸로 루프 돌리기 (vs. slicing 연산자 & reverse() 함수)

해당 내용은 아래 개념 링크 참고

개념 참고 링크