반응형
리뷰
점화식을 만드는데 애먹었지만 해당 부분을 제외하면 쉬웠다.
문제 풀이
도로의 길이 + 1 만큼의 길이를 가진 배열을 생성해 준다.
도로에 진입한 순간 사이클이 진행되므로 while문의 초반에 시간을 1더해준다.
시간을 빨간불 유지시간 + 초록불 유지시간으로 나눈 나머지가 빨간불 유지시간 보다 적다면 빨간불이다. 길을 0으로 변경시켜 이동을 막는다. 만약 반대라면 길을 1로 변경하여 이동할 수 있게 처리해 준다.
참고 사항
도로의 길이와 신호등의 정보의 범위가 좁아서 망정이지 더 길었다면 통과하지 못할 것 같다. 코드 최적화가 필요해 보임
정답 코드
def q2980():
# 백준 2980번 도로와 신호등 파이썬
n, l = map(int, input().split())
dp = [1] * (l + 1)
lst = [list(map(int, input().split())) for _ in range(n)]
time = 0
index = 1
while index <= l:
time += 1
for i in lst:
if time % (i[1] + i[2]) < i[1]:
dp[i[0]] = 0
else:
dp[i[0]] = 1
if dp[index] == 1:
index += 1
print(time)
q2980()
728x90
반응형
'알고리즘 공부 > 파이썬(Python)' 카테고리의 다른 글
SWEA 1936번 D1 1대1 가위바위보 파이썬 (0) | 2024.06.26 |
---|---|
백준 13300번 방 배정 파이썬 (0) | 2024.06.25 |
백준 10709번 기상캐스터 파이썬 (0) | 2024.06.25 |
백준 2578번 빙고 파이썬 (0) | 2024.06.25 |
백준 10157번 자리배정 파이썬 (0) | 2024.06.25 |