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
🔑
1. queue의 첫번째 원소를 꺼내서 도착 트럭을 꺼낸다.
- 트럭이 도착했다면
- 다리 위의 트럭 개수 - 1
- 다리 위의 트럭 무게 - 도착한 트럭 무게
- 트럭이 도착하지 않은 경우에는 0이 꺼내짐
2. 출발 대기중인 트럭 무게 + 현재 다리 위의 무게가 weight 이하이고
출발 대기중인 트럭을 출발시켰을 때 다리 위의 트럭 개수가 기준 트럭 개수 이하라면 트럭을 출발시킨다
- truck의 첫번째 원소를 다리 위에 올린다
- 다리 위의 트럭 무게 + 출발한 트럭의 무게
3. 매 반복마다 결과에 +1
💬 풀이
매 반복마다 reduce함수를 써주니까 시간 초과가 발생해서 현재 다리 위에 올라간 트럭의 무게를 변수에 따로 저장해두어 해결했다.
func solution(_ bridge_length:Int, _ weight:Int, _ truck_weights:[Int])->Int{vartruck= truck_weights
varbridge:[Int]=Array(repeating:0, count: bridge_length)vartc=(0,0)varans=0
while !truck.isEmpty {letarrive= bridge.removeFirst()
if arrive !=0{
tc.0-=1
tc.1-= arrive
}
if tc.1+ truck[0]<= weight && bridge_length >= tc.0+1{letdeparture= truck.removeFirst()
bridge.append(departure)
tc.0+=1
tc.1+= departure
}else{
bridge.append(0)}
ans +=1}return ans + bridge_length
}
The text was updated successfully, but these errors were encountered:
💬 문제
[코딩테스트 연습 - 다리를 지나는 트럭](https://school.programmers.co.kr/learn/courses/30/lessons/42583)
💬 Idea
문제가 너무 불친절해서 이해하는데 시간이 걸렸다
queue의 원리를 이용하자
💬 풀이
The text was updated successfully, but these errors were encountered: