백준 10811번 바구니 뒤집기 - Python

Lotw·2024년 6월 20일
0

Algorithm

목록 보기
1/1
post-thumbnail


하나하나 차근차근 뜯어보자.

  1. 1번부터 N번까지의 숫자가 담겨있는 바구니가 필요하다. 여기서 바구니는 list 형태로 받아줘야 할 것이다.
  2. M번동안 i와 j를 받아야 한다.
  3. 순서를 바꿔준다.

로 생각해 볼 수 있다.
예제와 같은 순서로 진행된다면

이런 식으로 진행될 것이다.

그렇다면 이렇게 아이디어를 생각해 볼 수 있다.

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

2. numbers(임의의 이름)이라는 list 선언 후 1부터 N까지 값을 채워준다

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


4.리스트 인덱스에 접근하기 위해 i-1을, j는 포함되어야 하므 로j-1+1=j를 range로 하여 numbers의 리스트를 슬라이싱한다

5. 슬라이싱한 값을 temp에 넣어두고 temp의 순서를 reverse 메서드로 바꿔준다 (파이썬 최고)

6. 순서를 바꾼 값을 다시 numbers 리스트에 업데이트

전체 코드

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

파이썬 내부 메소드를 잘 알고 있는 것, 배열의 활용이 중요하다고 다시 한 번 느끼는 문제였다.

profile
궁금한게 많은 백엔드 개발자

0개의 댓글

관련 채용 정보