Published:
Updated:

  • Reference
  • left_sum, right_sum ๋ฐฐ์—ด์„ ๋งŒ๋“ค์ง€ ๋ง๊ณ  ๋ฐ”๋กœ๋ฐ”๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋” ์ข‹์œผ๋ ค๋‚˜?
  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค ํ’€์ด ๋ณด๋‹ˆ ๋‚˜์ฒ˜๋Ÿผ ํ‘ผ ์‚ฌ๋žŒ์€ ๋‹จ ํ•œ๋ช…๋„ ์—†์—ˆ๋‹ค..
    • ๋‚ด๊ฐ€ ์ƒ๊ฐํ•ด๋„ ์ข€ ๋ณต์žกํ•œ ํ’€์ด ใ… ใ… 


  • Runtime 71ms
  • Beats 83.96%


SolutionPermalink

from typing import List


class Solution:
    # nums: [10, 4, 8, 3]
    # left: [0, 0 + 10, 0 + 10 + 4, 0 + 10 + 4 + 8] = [0, 10, 14, 22] -> 4๋ฒˆ๋งŒ ํ•˜๊ณ  ์ค‘๋‹จ
    # right: [0 + 3 + 8 + 4, 0 + 3 + 8, 0 + 3, 0] = [15, 11, 3, 0] -> 4๋ฒˆ๋งŒ ํ•˜๊ณ  ์ค‘๋‹จ
    def leftRigthDifference(self, nums: List[int]) -> List[int]:
        left_sum = [0] * len(nums)
        right_sum = [0] * len(nums)
        left = 0
        right = 0

        for i in range(1, len(nums)):
            left += nums[i - 1]
            left_sum[i] = left

        for i in range(len(nums) - 2, -1, -1):
            right += nums[i + 1]
            right_sum[i] = right

        # ๋ฐฐ์—ด ์›์†Œ๋ณ„๋กœ ๋นผ์ฃผ๊ณ  ์ ˆ๋Œ“๊ฐ’
        return list(abs(x - y) for x, y in zip(left_sum, right_sum))


print(Solution().leftRigthDifference([10, 4, 8, 3]))

Leave a comment