from typing import List
def change_box(n: int, q: int, box: List[List[int]]) -> str:
nums = [0] * n
for i in range(1, q+1):
start, end = box[i-1]
nums[start-1:end] = [i] * (end - start + 1)
return ' '.join(map(str, nums))
T = int(input())
for test_case in range(1, T + 1):
n, q = map(int, input().split())
data = [list(map(int, input().split())) for _ in range(q)]
print(f'#{test_case} {change_box(n, q, data)}')
T = int(input()) # 테스트 케이스의 수를 입력받습니다.
for test_case in range(1, T + 1):
N, Q = map(int, input().split()) # N과 Q를 입력받습니다.
boxes = [0] * N # 길이가 N이고 모든 상자의 값이 0인 리스트를 생성합니다.
for _ in range(Q):
L, R = map(int, input().split()) # L과 R을 입력받습니다.
# L부터 R까지의 상자 값을 작업 번호로 변경합니다.
for i in range(L - 1, R):
boxes[i] = _ + 1
# 변경된 상자의 값들을 출력합니다.
print(f'#{test_case} {" ".join(map(str, boxes))}')
입력값으로부터 테스트 케이스의 수 T를 받습니다.
T번 반복하면서 각 테스트 케이스에 대한 입력값을 받습니다.
길이가 N이고 모든 상자의 값이 0인 리스트를 생성합니다.
Q번 반복하면서 각 작업에 대해 L부터 R까지의 상자 값을 작업 번호로 변경합니다.
최종적으로 변경된 상자의 값들을 출력합니다.
ChatGPT Code 시간복잡도: 전체 시간 복잡도는 O(T (N + Q (R - L + 1)))
내 코드 시간복잡도: O(T * (N + Q))
동일한 효율성을 가진다.