- 오늘의 학습 키워드 이진 탐색
- 공부한 내용 본인의 언어로 정리하기
버스 노선 별로 영식이가 탈수 있는 첫번째 출발시간을 계산
모든 노선중에 가장 빨리 탈수 있는 버스
그 버스 출발시간과 영식이 도척시간의 차이를 계산
function calculateMinWaitTime(busLines, arrivalTime):
minWaitTime = INF
for each bus in busLines:
starttime = bus.startTime
interval = bus.internal
count= bus.count
#버스가 모두 출발했는지 확인
if startTime + (count -1) * interval< arrivalTime:
continue
#영식이가 탈수 있는 첫번째 버스 시간 찾기
firstAvailableBus = startTime
while(firstAvailableBus += interval
# 최대 출발 시간을 넘지 않는 지 확인
if firstAvailableBus <= startTime +(count-1) *interval:
waitTime = firstAvailableBus - arrivalRime
minWaitTime = min(minWaitTime, waitTime)
if minWaitTime ==INF:
return -1
else:
return minWaitTime
- 오늘의 회고
- 어떤 문제가 있었고, 나는 어떤 시도를 했는지
버스의 마지막 출발시간 계산식 만드는 데 어려움이 있었다.
예시들으로 계속 풀어봤는데 예시로 풀어져 있는 것을 식으로 만드는게 참 어려웠다.
- 어떻게 해결했는지
버스 시간을 순서대로 나열하면
첫번째 버스는 S
두번째 버스는 S+I
세번째는 S+2I니까
마지막 버스 출발시간은
int lastDeparture = S + (C - 1) * I;
- 무엇을 새롭게 알았는지 버스 시간을 구하는 것도 알고리즘으로 풀수 있다니 재미있었다.
- 내일 학습할 것은 무엇인지
'【스터디노트】 > ▷TIL' 카테고리의 다른 글
99클럽 코테 스터디 20일차 TIL + 오늘의 학습 키워드 이진탐색 (0) | 2025.04.25 |
---|---|
99클럽 코테 스터디 19일차 TIL + 오늘의 학습 키워드 이진탐색 (1) | 2025.04.24 |
99클럽 코테 스터디 17일차 TIL + 오늘의 학습 키워드 이진 탐색 (0) | 2025.04.22 |
99클럽 코테 스터디 16일차 TIL + 오늘의 학습 키워드 이분 검색 (0) | 2025.04.22 |
99클럽 코테 스터디 15일차 TIL + 오늘의 학습 키워드 정렬 (0) | 2025.04.18 |