BOJ
[C] 백준 2980 - 도로와 신호등 // 유지니의 일기2
yujinkimkim
2023. 1. 16. 00:44
2980번: 도로와 신호등
상근이는 트럭을 가지고 긴 일직선 도로를 운전하고 있다. 도로에는 신호등이 설치되어 있다. 상근이는 각 신호등에 대해서 빨간 불이 지속되는 시간과 초록 불이 지속되는 시간을 미리 구해왔
www.acmicpc.net
정말 저는 '자만' 그 자체였다는 것을
백준을 통해 알게 되어가는 중이에용

나는 실패하지 않았다
나는 단지 효과 없는 만 가지 방법을
발견했을 뿐이다.
-토마스 에디슨-
이 말이 지금 내 상황에 9999999999% 들어맞는 명언이다
하지만 좌절을 이겨내고 어떻게든 백준에서 '정답' 이라는 영광을 얻어낸 나
칭찬해😘😘😘😘😘
#include <stdio.h>
int main()
{
int N, L, sum = 0, D, R, G, pre = 0;
scanf_s("%d %d", &N, &L);
for (int i = 0; i < N; i++)
{
scanf_s("%d %d %d", &D, &R, &G);
sum += D - pre;
pre = D;
int num = sum % (R + G);
if (num < R)
sum += R - num;
}
sum += L - pre;
printf("%d", sum);
return 0;
}
되게 간단한 코드인데
빨간 불 시간 + 초록 불 시간을 여태까지 걸어오는 데에 걸린 시간 나눈 나머지가
빨간 불 시간보다 작으면 빨간 불 기다려야 하고
만약에 기다려야한다면
빨간 불 시간에서, 위에서 구한 나머지 값 빼주면 된다
시간 구하는 방법은
신호등 위치 - 지금 내 위치 값 계속 더해주고
위에서 구한 빨간 불 시간 더해주면 된다
for문 나가서 모든 신호등을 지나쳤다면.
..
마지막으로 건넌 신호등에서 종점까지 걸어가는 거까지 더해주면 된당
휴
방학 알차게 프로젝트 하지메루요~