반응형
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
#include <queue>
#include <stack>
#include <deque>
using namespace std;
typedef struct
{
int x; //신호등위치
int y; //빨간색지속시간
int z; //초록색지속시간
}node;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n, l;
int t1, t2, t3;
int pre = 0;
int result = 0;
int idx = 0;
vector<node>v;
cin >> n >> l; //신호등 개수, 도로의길이 입력
for (int i = 0; i < n; i++) //신호등정보입력
{
cin >> t1 >> t2 >> t3;
v.push_back({ t1,t2,t3 });
}
while (idx<n) //모든 신호등 확인
{
pre = v[idx].x; //현재시간은 신호등의 위치, 1초에 1미터이기때문에
if (result > 0)
pre += result; //이전 신호등에서 대기시간이 있을 경우 현재시간에 더한다
int num = v[idx].y + v[idx].z; //빨간색 지속 + 초록색 지속
if (pre % num < v[idx].y) //빨간색 지속시간에 포함되는 경우
{
result += v[idx].y - (pre%num); // 빨간색 지속시간에 num을 뺀만큼 대기시간증가
idx++;
continue;
}
else
{
idx++;
continue;
} //초록색 지속시간에 포함되는 경우
}
result += l;
cout << result;
return 0;
}
반응형
'Programming > Baekjoon' 카테고리의 다른 글
백준 1012 유기농배추 [c++] (0) | 2022.05.31 |
---|---|
백준 1920 수찾기 [c++] (0) | 2022.05.30 |
백준 11279 c++ [최대힙] (0) | 2022.05.07 |
백준 1927 c++ [최소힙] (0) | 2022.05.07 |
백준 1051 c++ [숫자정사각형] (0) | 2022.05.06 |