[LeetCode] 1578. Minimum Time to Make Rope Colorful

김민우·2022년 10월 3일
0

알고리즘

목록 보기
31/189

- Problem

1578. Minimum Time to Make Rope Colorful

Colorful한 풍선 배열을 만들라고 한다.
풍선의 색상이 담긴 배열 colors와 풍선을 터트리는 데 걸리는 시간 배열인 neededTime이 주어진다.

배열을 순서대로 돌며 스택에 담는다. 이때 스택의 마지막 원소의 색상과 현재 스택에 담으려는 풍선의 색상이 같다면, neededTime을 비교한다.
당연히 minimum time을 구하는 것이므로 두 원소를 비교 후, 시간이 더 짧은 풍선을 터트려주면 된다.

- 내 풀이

class Solution:
    def minCost(self, colors: str, neededTime: List[int]) -> int:
        answer = 0
        stk = []
        
        for color, time in zip(colors, neededTime):
            if stk and stk[-1][0] == color:
                if time >= stk[-1][1]:
                    answer += stk.pop()[1]
                
                else:
                    answer += time
                    continue
                    
            stk.append([color, time])
                        
        return answer

- 결과

profile
Pay it forward.

0개의 댓글