알고리즘 공부/파이썬(Python)

백준 31883번 FA수의 진 파이썬

마달랭 2024. 7. 9. 11:07
반응형

리뷰

신호등과 육교를 통해 최대한 빨리 강의실에 도착 하는 구현 문제

 

문제 풀이

  1. 입력 데이터와 시간을 나타낼 변수를 0으로 초기화 해준다.
  2. 리스트의 각 요소를 참조하여 신호등의 빨간불과 초록불의 시간을 더해 사이클을 만들어 준다.
  3. 현재 시간을 사이클로 나눈 나머지가 현재 신호등의 정보가 된다. blue라는 변수로 저장해 주었다.
  4. 만약 blue가 초록불의 시간보다 적다면 현재는 초록불인 것이다.
  5. 만약 blue가 초록불의 시간보다 적다면 현재는 빨간불인 것이다. 총 사이클에서 blue값을 빼준 뒤 i[0]에 더해준다.
  6. time에 육교와 횡단보도를 통한 이동 시간 중 더 적은 값을 더해준다.

 

참고 사항

없음

 

 

정답 코드

import sys

n = int(sys.stdin.readline())
lst = [list(map(int, sys.stdin.readline().split())) for _ in range(n)]
time = 0
for i in lst:
    cycle = i[2] + i[3]
    blue = time % cycle
    if blue >= i[2]:
        i[0] += cycle - blue
    time += min(i[0], i[1])
print(time)

 

728x90
반응형