본문 바로가기
코딩 테스트/Python_백준

[백준/Python] 10811번 바구니 뒤집기 문제

by 모두의 케빈 2023. 3. 21.

■ 백준 10811번 바구니 뒤집기 문제

출처: 백준 10811번 바구니 뒤집기

 

■ 코드 풀이

 

아이디어는 다음과 같습니다.

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

2) basket이라는 list를 선언하고 1부터 N까지 값을 채워 줍니다.

3) M번 동안 i와 j를 입력 받습니다.

4) basket의 i번째부터 j번째 바구니를 바꿔야 하므로, list index에 접근하기 위해 i-1을, j는 포함되어야 하므로 j-1+1 = j를 range로 하여 basket list를 slicing 합니다.

5) slicing한 값을 temp에 넣어두고 temp의 순서를 reverse 메서드를 활용하여 바꿔줍니다.

6) 순서를 바꾼 값을 다시 basket list에 업데이트 합니다.

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 = ' ')

댓글