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

hansung's·2024년 2월 16일
0

url:
https://www.acmicpc.net/problem/10811

문제:


여기서 역순이라는 말이 주목하면 "반대로 정렬해서 넣어라" 라고 생각할 수 있다.
거기서 나는 reverse라는 함수를 생각해볼 수 있었다.
이를 이용해 문제를 한번 풀어 보겠다.

import sys

n, m = map(int, sys.stdin.readline().split())

# 바구니에 1번부터 N번까지 바구니 생성
basket = list(range(1, n+1))

# 또는 
# for문이나, range() 함수나 시간 복잡도는 O(N)으로 
# 어느 방법을 사용하든 시간 복잡도 면에서는 동일  

basket = []
for i in range(1, n+1):
  basket.append(i)

# M번 만큼 역순해서 바구니를 변경하기 위한 로직
for rep in range(m):
  i, j = map(int, sys.stdin.readline().split())
  basket[i-1:j] = reversed(basket[i-1:j])

# 출력
# 아래 방법은 리스트 또는 다른 방복 가능한 객체의 모든 요소를 공백으로 구분해서 출력할 때 사용
# *는 언패킹(unpacking)연산자로 리스트의 각 요소가 개별인자로 전달해
# print(*[1,2,3])은 print(1, 2, 3)과 동일하게 출력할 수 있다
print(*basket)
profile
ABAPER를 꿈꾸는 개발자

0개의 댓글