공부/백준

BOJ 10812번 (단계별)

새로운뉴비 2023. 4. 6. 21:36

https://www.acmicpc.net/problem/10812

 

10812번: 바구니 순서 바꾸기

도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2

www.acmicpc.net

 

N개의 바구니

1~N의 번호가 적혀있음.

 

왼쪽부터 1, 2, 3...번째 바구니

M회 바구니의 순서를 회전하도록.

바구니 순서 회전시 회전 범위 정하고, 범위 안에서 기준이 될 바구니 선택

 

범위 begin, end, 기준 mid

mid부터 끝까지 + 앞에서부터 mid 바로 전까지

 

# import math #math 모듈을 먼저 import해야 한다.
# math.ceil(3.14) #결과는 4
# math.floor(3.14)    #결과는 3
# round(3.1415)   #결과는 3

#형태
# - 문자열.split()
# - 문자열.split('구분자')
# - 문자열.split('구분자',분할횟수)
# - 문자열.split(sep='구분자',maxsplit=분할횟수)

#배열 생성
# bList = [0 for i in range(n)]

#입력
# num_list = list(map(int, input().split()))
# n, m = map(int, input().split())
# 형변환
# d = int('1')

#리스트 슬라이싱
# [:] 처음부터 끝까지
# [start:] start오프셋(인덱스)부터 끝까지
# [:end] 처음부터 end-1 오프셋(인덱스)까지
# [start : end] start오프셋부터 end-1 오프셋(인덱스)까지
# [start : end : step] step만큼 문자를 건너뛰고, 위와 동일추출

#for i in range(a, b, c)에서 b는 포함되지 않는다.(a이상 b미만)
##################################################
# N, M = map(int, input().split())
# bList = [i+1 for i in range(N)]
# for a in range(M):
#   i, j = map(int, input().split())
#   temp = bList[i - 1]
#   bList[i - 1] = bList[j - 1]
#   bList[j - 1] = temp

# for i in range(N):
#   print(bList[i], end=' ')
##################################################
#여러줄 입력받기
# import sys
# while True:
#     try:
#         a, b = map(int, sys.stdin.readline().split())
#         print(a + b)
#     except:
#         break
###################################################
############## 풀이 ################################
N, M = map(int, input().split())

num_list = [a+1 for a in range(N)]
for a in range(M):
  i, j, k = map(int, input().split())
  list_Temp = num_list[k-1:j] + num_list[i-1:k-1]
  num_list[i-1:j] = list_Temp
for a in num_list:
  print(a, end=' ')