본문 바로가기
BOJ

[C] 백준 2980 - 도로와 신호등 // 유지니의 일기2

by yujinkimkim 2023. 1. 16.

2980번: 도로와 신호등 (acmicpc.net)

 

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문 나가서 모든 신호등을 지나쳤다면.

..

마지막으로 건넌 신호등에서 종점까지 걸어가는 거까지 더해주면 된당

 

 

방학 알차게 프로젝트 하지메루요~

댓글