본문 바로가기
알고리즘

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

by noddu 2023. 6. 21.
728x90
반응형
[Python] 10811번 문제

 

 

 

반응형

 


 

 

풀이

 

n,m = map(int, input().split())

바구니 수 N, 반복 횟수M을 입력 받습니다

 

 

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

basket이라는 배열에 1부터 N까지 값을 넣습니다.

n+1까지 해줘야 N까지 들어가겠죠?

 

temp = 0

temp라는 변수를 -으로 최기화 해둡니다.

 

 

for x in range(m):
  i,j = map(int, input().split())
  temp = basket[i-1:j]
  temp.reverse()
  basket[i-1:j] = temp

반복 횟수 M만큼 반복하면서 i,j를 입력 받습니다.

temp = 1부터 시작했으므로 basket의 i-1번째부터 시작, j는 포함해야하니 -1하지않고 슬라이싱 해주고

reverse()함수를 사용해 순서를 역순으로 바꿉니다.

그리고 다시 basket의 i-1:j를 temp 변수로 업데이트 해줍니다.

 

 

for x in range(n):
  print(basket[x],end=" ")

순서를 바꾼 basket을 반복문을 통해 출력하는데 end=" "를 사용해 각 숫자마다 공백을 넣어서 출력합니다.


 

정답
n,m = map(int, input().split())
basket = [i for i in range(1,n+1)]
temp = 0
for x in range(m):
  i,j = map(int, input().split())
  temp = basket[i-1:j]
  temp.reverse()
  basket[i-1:j] = temp

for x in range(n):
  print(basket[x],end=" ")

 

반응형

'알고리즘' 카테고리의 다른 글

[Python] 백준 10162 전자레인지  (0) 2023.06.21
[Python] 백준 1546 평균  (0) 2023.06.21
[Python] 백준 3052 나머지  (0) 2023.06.21
[Python] 백준 5597 과제 안 내신 분..?  (0) 2023.06.13
[Python] 백준 10813 공바꾸기  (0) 2023.06.12