*문제 출처는 백준에 있습니다.
문제 제목: 캠프가는 영식 / 1590번 (실버 4단계)
문제 사이트: https://www.acmicpc.net/problem/1590
문제 설명

나의 풀이
def min_waiting_time(N, T, buses):
min_wait = float('inf')
for i in range(N):
Si, Ii, Ci = buses[i]
# 첫 번째 버스부터 마지막 버스까지의 모든 출발 시각 확인
for j in range(Ci):
bus_time = Si + j * Ii
# T 이후에 출발하는 가장 빠른 버스 찾기
if bus_time >= T:
min_wait = min(min_wait, bus_time - T)
break # 이 노선에서 가장 빠른 버스를 찾았으므로 다음 노선으로 이동
if min_wait == float('inf'):
return -1 # 탈 수 있는 버스가 없음
else:
return min_wait
# 입력 처리
N, T = map(int, input().split())
buses = []
for _ in range(N):
Si, Ii, Ci = map(int, input().split())
buses.append((Si, Ii, Ci))
# 결과 출력
print(min_waiting_time(N, T, buses))

※ 알아야 할 것
모든 터미널을 비교하면서 가장 빠른 시간을 갱신하면 됩니다!
'Coding Test > 백준-Python' 카테고리의 다른 글
| 백준 / 구간 합 구하기 5 / 11660번 / Python (0) | 2025.03.26 |
|---|---|
| 백준 / 숨바꼭질 2 / 12851번 / Python (0) | 2025.03.24 |
| 백준 / 로봇 청소기 / 14503번 / Python (2) | 2025.03.21 |
| 백준 / 다리 만들기 / 2146번 / Python (0) | 2025.03.20 |
| 백준 / 퇴사 2 / 15486번 / Python (0) | 2025.03.18 |