BeakJoon/Python

[Python] 백준 #10811번 : 바구니 뒤집기

쿼딩~ 2023. 9. 29. 14:09

문제


조건

  • 첫째 줄에 N과 M을 입력받고 각각 바구니의 수와 입력받는 수이다
  • 총 N줄 입력받아야 하고 각 줄에 i와 j를 입력받아야 한다
  • i와 j는 i 번째 바구니 부터 j 번째 바구니 까지 순서를 거꾸로 바꿔야한다
  • 출력창에 한 줄로 출력해야한다( '[ ]' 없이 )

코드


#빠른 컴파일을 위해 sys.stdin.readline()을 쓰기 위해 불러옴
import sys

#바구니 리스트
basket = []

#바구니의 총 개수와 반복문 반복 할 횟수입력 (첫째 줄 입력)
N,M = map(int, sys.stdin.readline().split())
#바구니 N개의 리스트
basket = [i for i in range (1,N+1)]

#M번 범위 입력받고 그 범위 만큼 바구니 리스트 역순으로 바꿔줌
for _ in range (M):
    i,j = map(int, sys.stdin.readline().split())
		# ※중요※
		# reversed함수 범위를 정하는 방법
		# ex) list[범위1:범위2] = reversed(basket[범위1:범위2])
    basket[i-1:j] = reversed(basket[i-1:j])

#print함수에 바구니 리스트 요소를 각각 전달해서(언패킹) 요소들을 한 줄로 출력
print (*basket)

알게된 점

  • list[i-1:j] = reversed(list[i-1:j]) 이 코드는 리스트에서 i요소 부터 j요소 까지 순서를 거꾸로 바꾸는 코드이다.