You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
각 운행 당 태울 수 있는 최대 크루 수만큼 크루를 태우기 위해 m이 0이 될 때까지 timeTable을 popLast한다.
이 때 가장 빨리 태워야하는(가장 먼저 줄을 선) 크루의 줄 선 시각이 현재 시각보다 늦을 경우 → 다시 timeTable에 tada를 append하고 반복문을 멈춘다.
만약 현재가 마지막 운행 셔틀이라면 → 콘이 탈 수 있는 가장 늦은 도착 시간을 구한다
m이 남은 경우 → 크루가 줄을 선 가장 마지막 시각에 콘이 마지막으로 줄을 서면 탈 수 있다.
m이 남지 않은 경우 → 크루가 줄을 선 가장 마지막 시각에 콘이 마지막으로 줄을 서면 콘이 타지 못하고 버스가 떠나버리므로 → 크루가 줄을 선 가장 마지막 시각 - 1에 콘이 탑승해야 안전하게 도착할 수 있다!
💬 풀이
import Foundation
func solution(_ n:Int, _ t:Int, _ m:Int, _ timetable:[String])->String{varstartTime=900varcornTime= startTime
vartimetable= timetable.map({Int($0.split(separator:":").joined())! }).filter({ $0 !=2359}).sorted(by:>)vartada=0
for i in 1...n {varm= m
while m >0 && !timetable.isEmpty {
tada = timetable.popLast()!
if tada <= startTime {
m -=1}else{
timetable.append(tada)
tada = startTime
break
}}
if n == i {
if m >0{
cornTime = startTime > tada ? startTime : tada
}else{
cornTime = tada -1
if cornTime %100>=60{
cornTime -=40}}}
startTime += t
if startTime %100>=60{
startTime +=40}}returnString(format:"%02d:%02d", cornTime /100, cornTime %100)}
The text was updated successfully, but these errors were encountered:
💬 문제
https://school.programmers.co.kr/learn/courses/30/lessons/17678
💬 Idea
💬 풀이
The text was updated successfully, but these errors were encountered: