[1스4코2파] # 178. LeetCode 853. Car Fleet

gunny·2023년 6월 29일
0

코딩테스트

목록 보기
179/530

[1스4코2파] 1명의 스위프트 개발자와 4명의 코틀린 개발자, 2명의 파이썬 개발자코딩 테스트 서막 : 1스4코1파

Rule :

하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능

START :

[3코1파] 2023.01.04~ (178차)
[4코1파] 2023.01.13~ (170일차)
[1스4코1파] 2023.04.12~ (81일차)
[1스4코2파] 2023.05.03 ~ (59일차)

Today :

2023.06.30 [178일차]
LeetCode Patterns
https://leetcode.com/problems/car-fleet/description/

853. Car Fleet

https://leetcode.com/problems/car-fleet/description/

문제 설명

![](https://velog.velcdn.com/images/heyggun/post/8411e915-ff06-4a0f-b9b1-5612330cc5c5/image.png

일직선으로 n개의 차가 있을 때 각 차는 position, speed의 값을 가짐
목적지는 target 으로 여기까지 도착해야 됨.
자동차는 앞서가는 차를 따라잡을 수 있음. 빠른 차는 느린 차의 속도에 맞춰서 속도를 줄여야 하고,
자동차가 동일한 위치에 동일한 속도로 주행하면 하나의 자동차로 간주할때,
목적지에 도착할 자동차 수를 return함.. (맞나?)

문제 풀이 방법

진짜 이거 뭔말임..
일단 일직선 상에 차가 있는데 각 차의 position 이랑 speed가 있고, 그리고 도착해야하는 target(destination)이 주어지는데.
각 차들은 target 에서 position을 빼고 speed 로 나눠주면, target 까지 얼마나 걸리는지 계산할 수 있다.

destination에서 가장 먼 차부터, 몇 번 이동해야 destination으로 도착할 수 있는지 stack에 쌓고, 도착지로 부터 멀리 떨어져 있는 차가 앞선 차보다 더 적은 횟수로 도착하면 추월한 것이므로 stack에 안쌓음..
일단 이렇게 이해했는데 몬말이여,,

내 코드

class Solution:
    def carFleet(self, target: int, position: List[int], speed: List[int]) -> int:
        pair = [[p,s] for p, s in zip(position, speed)]

        stack = []
        for p,s in sorted(pair)[::-1]:
            stack.append((target-p) / s)
            if len(stack)>=2 and stack[-1] <= stack[-2]:
                stack.pop()
            
        return len(stack)

증빙

여담

뭐야 이거 무슨말이야
몰라서 이것 저것 봄
https://www.codingninjas.com/studio/library/car-fleet

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글