{}연습장
대시보드학습스킬 경로문제모의고사라이브 코테복습데이터
문제 목록〉시뮬레이션〉부품 검사 라인← 이전다음 →
#109 · 시뮬레이션어려움턴제 시뮬레이션,동시 갱신

부품 검사 라인

문제

길이 L의 검사 벨트가 있습니다. 칸 번호는 왼쪽부터 1, 2, …, L입니다. 일부 칸 위에는 검사 레이저가 설치되어 있고(lasers, 칸 번호 배열), 벨트 위에는 부품들이 놓여 있습니다. parts[i] = [p, d]는 p번 칸에 내구도 d인 부품이 있다는 뜻입니다 (초기 위치는 서로 다릅니다).

매 턴은 다음 세 단계가 순서대로 진행됩니다.

  1. 이동: 모든 부품이 동시에 오른쪽으로 1칸 이동합니다. L번 칸에 있던 부품은 벨트를 벗어나며 출하 됩니다.
  2. 검사: 이동이 끝난 뒤, 레이저 칸 위에 있는 부품은 내구도가 1 감소합니다. 내구도가 0이 되면 그 부품은 즉시 폐기 되어 벨트에서 제거됩니다.
  3. 투입: 턴 번호가 k의 배수인 턴이면, 1번 칸에 내구도 d의 새 부품이 투입됩니다. (이동 단계 덕분에 1번 칸은 이 시점에 항상 비어 있습니다.)

턴 번호는 1부터 시작합니다. T턴을 진행한 뒤의 결과를 [출하된 부품 수, 폐기된 부품 수] 배열로 반환하는 solution(L, lasers, parts, T, d, k) 함수를 작성하세요.

예시

L=3, lasers=[2], parts=[[1,1]], T=3, d=1, k=1 → [0, 3]
  (매 턴: 1번 칸 부품이 2번으로 이동 → 레이저에 폐기 → 새 부품 투입이 반복)
L=3, lasers=[], parts=[[1,2],[3,5]], T=2, d=9, k=2 → [1, 0]
  (턴1에 3번 칸 부품 출하, 턴2에 새 부품 투입)
L=1, lasers=[1], parts=[], T=4, d=1, k=1 → [3, 0]
  (투입된 부품은 다음 턴 이동에서 바로 출하 — 이동 후 1번 칸은 비므로 레이저는 아무것도 못 잡는다)

제약 조건

  • 1 ≤ L ≤ 100,000
  • 0 ≤ lasers.length ≤ L (칸 번호 중복 없음)
  • 0 ≤ parts.length ≤ L
  • 1 ≤ T ≤ 100,000
  • 1 ≤ d ≤ 100, 1 ≤ k ≤ T
  • 단계 순서(이동 → 검사 → 투입)와 동시 이동 규칙을 정확히 지켜야 합니다

시간 복잡도 목표: O(T + L) ~ O(T · 부품 수) 수준 (전 칸 순회 시뮬레이션도 허용)

테스트 케이스

예시 1: 레이저 앞 무한 폐기 루프
입력: L = 3, lasers = [2], parts = [[1,1]], T = 3, d = 1, k = 1
출력: [0,3]
예시 2: 출하 1건, k=2 투입
입력: L = 3, lasers = [], parts = [[1,2],[3,5]], T = 2, d = 9, k = 2
출력: [1,0]
예시 3: L=1 — 이동 후 1번 칸이 비어 레이저 무력화
입력: L = 1, lasers = [1], parts = [], T = 4, d = 1, k = 1
출력: [3,0]
빈 벨트 시작: 투입→이동→출하 흐름
입력: L = 2, lasers = [], parts = [], T = 3, d = 2, k = 1
출력: [1,0]
레이저 2회 누적으로 내구도 소진
입력: L = 4, lasers = [2,3], parts = [[1,2]], T = 3, d = 99, k = 1
출력: [0,1]
경계: L번 칸 부품은 검사 전에 출하
입력: L = 2, lasers = [2], parts = [[2,1]], T = 1, d = 5, k = 1
출력: [1,0]
k=2 투입 주기와 레이저 1회 통과
입력: L = 3, lasers = [2], parts = [], T = 6, d = 2, k = 2
출력: [1,0]
복합: 초기 부품 출하·폐기 + 투입 부품 연쇄 폐기
입력: L = 5, lasers = [2,4], parts = [[3,1],[5,2]], T = 5, d = 2, k = 1
출력: [1,3]
solution.ts
에디터 로딩 중…

▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.