https://www.acmicpc.net/problem/2980
import sys
input = sys.stdin.readline
N, L = map(int, input().split()) # 신호등 개수, 도로의 길이
pos = 0 # 현재 위치
answer = 0
for _ in range(N):
d, r, g = map(int, input().split()) # 신호등 위치, 빨간불, 초록불
answer += (d - pos) # 신호등 위치 - 현재 위치
pos = d # 현재 위치 갱신
if answer % (r + g) <= r: # 경과시간 % (빨간불 + 초록불)이 빨간불 이하면 대기해야함
answer += (r - (answer % (r + g))) # 대기시간 더하기
answer += (L - pos) # 반복문을 돌고나면 신호등이 없는 도로의 길이를 더해야함.
print(answer)
처음에 지나는 시간, 트럭의 위치, 빨간불, 초록불 다 하나씩 계산하면서 코드를 구현하다가 코드가 너무 길어지고 풀이가 꼬여버려서 1시간 동안 고생했다. 풀이 방법을 더 깊이 생각해봐야겠다.