본문 바로가기

백준

[BaekJoon/Python3] 백준 10811번 : 바구니 뒤집기

 

 

<정답 코드>

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

basket = [i for i in range(1,N+1)]

for i in range(M):
    i,j = map(int,input().split())
    temp = basket[i-1:j]
    temp.reverse()
    basket[i-1:j] = temp
for i in range(N):
    print(basket[i], end=" ")

 

 

☆ 코드 흐름

1. 바구니 개수 N과 반복 횟수 M을 각각 입력 받는다.

2. basket이라는 list를 선언하고 1부터 N까지 값을 넣는다. → range(1,N+1) : N+1까지 해줘야 N까지 들어가는거 주의

3. M번 동안 i와 j를 입력 받는다.

4. basket의 i번째부터 j번째 바구니를 바꿔야 하므로 리스트 인덱스는 i-1, j-1+1=j를 range로 하여 리스트를 슬라이싱한다.

5. 슬라이싱한 값을 temp에 넣어두고 temp.reverse()를 이용하여 바꿔준다.