[백준/파이썬] 2980번 도로와 신호등 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 2980번 도로와 신호등
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
신호등 상태를 따라가며 도로 길이 L 끝까지 이동할 때
총 소요 시간을 구하는 문제입니다.
코드
import sys; read = sys.stdin.readline
n, l = map(int, read().split())
lamps = [list(map(int, read().split()))+[False, 0] for _ in range(n)]
t = s = 0
i = 0
while s < l:
if i < n and lamps[i][0] == s and lamps[i][4] == 1:
s += 1
i += 1
elif i >= n or lamps[i][0] > s:
s += 1
t += 1
for lamp in lamps:
lamp[3] += 1
if lamp[3] >= lamp[lamp[4] + 1]:
lamp[3] = 0
lamp[4] = (lamp[4] + 1) % 2
print(t)
설명
현재 위치에서 전진 가능한지 확인한 뒤 시간을 1초씩 증가시키고, 모든 신호등의 내부 상태를 함께 갱신하는 방식으로 시뮬레이션합니다.
댓글남기기