import sys
N, M = map(int, sys.stdin.readline().rstrip().split())
bucket = [i for i in range(1,N+1)]
for _ in range(M):
i, j, k = map(int, sys.stdin.readline().rstrip().split())
before_bucket = bucket[:i-1]
changed_bucket1 = bucket[k-1:j]
changed_bucket2 = bucket[i-1:k-1]
after_bucket = bucket[j:]
bucket = before_bucket + changed_bucket1 + changed_bucket2 + after_bucket
#bucket = bucket[:i-1] + bucket[k-1:j] + bucket[i-1:k-1] + bucket[j:]
for i in bucket:
print(i, end=" ")
문제
입출력
풀이
1. 입력값에 의한 초기 설정
# N, M = 10, 5
N, M = map(int, sys.stdin.readline().rstrip().split())
# 바구니 초기값 : \[1, 2, 3, 4, 5, 6, 7, 8, 9, 10\]
# List Comprehension
bucket = [i for i in range(1,N+1)]
# 바구니 순서바꾸기 5회 수행
for _ in range(M):
2. 바구니 순서바꾸기 알고리즘
# 1) 바구니 순서 바꾸는 방법 입력
i, j, k = map(int, sys.stdin.readline().rstrip().split()) # 1, 6, 4
# 2) 바구니를 i, j, k 값에 따라 분할 한다
# 순서를 바꾸지 않는 바구니 (~ begin-1) = []
before_bucket = bucket[:i-1]
# 순서가 바뀐 바구니 1 (mid ~ end) = [4, 5, 6]
changed_bucket1 = bucket[k-1:j]
# 순서가 바뀐 바구니 2 (begin ~ mid-1) = [1, 2, 3]
changed_bucket2 = bucket[i-1:k-1]
# 순서를 바꾸지 않는 바구니 = [7, 8, 9, 10]
after_bucket = bucket[j:]
# 3) 바구니를 하나로 합친다
bucket = before_bucket + changed_bucket1 + changed_bucket2 + after_bucket
## 1) ~ 3) 을 한줄로 표현
#bucket = bucket[:i-1] + bucket[k-1:j] + bucket[i-1:k-1] + bucket[j:]
3. 정답 출력
# 가장 왼쪽에 있는 바구니부터 바구니에 적혀있는 순서를 공백으로 구분해 출력
for i in bucket:
print(i, end=" ")