새소식

PS/LeetCode

1652. Defuse the Bomb

  • -

Problem : https://leetcode.com/problems/defuse-the-bomb

 

Difficulty : Easy

 

Status : Solved

 

Time : 00:06:22

 


 

문제 설명

 


 

풀이

 

슬라이딩 윈도우 문제. k가 주어진 세 가지 경우일 때를 각각 구현하면 쉽게 풀린다. 시간복잡도는 O(N).

 

풀이 코드

class Solution:
    def decrypt(self, code: List[int], k: int) -> List[int]:
        n = len(code)
        result = [0]*n
        if k == 0 :
            return result
        
        if k > 0 :
            result[0] = sum(code[1:k+1])
            for i in range(1, n) :
                result[i] = result[i-1] - code[i] + code[(i+k)%n]
        else :
            result[0] = sum(code[-1:k-1:-1])
            for i in range(1, n) :
                result[-i] = result[-i+1] - code[-i] + code[-(i-k)%n]
        return result

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.