• Reference
  • 이 λ‘œμ§μ€ λΆ„λͺ… λ‚˜μ€‘μ— μ–΄λ””μ„œ 또 쓰일 것 κ°™λ‹€.
  • μ™Όμͺ½ ν•˜κ³ , 였λ₯Έμͺ½ ν•΄μ„œ κ³„μ‚°ν•œλ‹€λŠ” 점 κΈ°μ–΅ν•΄ λ‘μž.


Solution

from typing import List


class Solution:
    # λ‚˜λˆ„κΈ° μ—°μ‚° μ“°μ§€ 말고, O(N)으둜
    # λ‚˜λˆ„κΈ° μ“Έ 수 있으면 sum(nums)ν•œ λ‹€μŒμ— ν•˜λ‚˜μ”© λ‚˜λˆ μ£Όλ©΄ 끝이긴 함
    # κ²°κ΅­ λ‚˜λˆ„κΈ°λ₯Ό μ‚¬μš©ν•˜μ§€ λͺ» ν•˜λ‹ˆκΉŒ μžμ‹ μ„ μ œμ™Έν•œ κ³±μ…ˆλ“€μ„ μ΄μš©ν•˜λŠ” 방법밖에 μ—†μŒ
    def productExceptSelf(self, nums: List[int]) -> List[int]:
        answer = []

        # μ™Όμͺ½λΆ€ν„° κ³±ν•œ κ²°κ³Όλ₯Ό answer 배열에 μ €μž₯
        times = 1
        for num in nums:
            answer.append(times)
            times *= num

        times = 1
        # μ™Όμͺ½λΆ€ν„° κ³±ν•œ 결과에 였λ₯Έμͺ½ 값듀을 μ°¨λ‘€λŒ€λ‘œ κ³±ν•΄μ„œ μ €μž₯ν•˜μž
        for i in range(len(nums) - 1, -1, -1):
            answer[i] *= times
            times *= nums[i]

        return answer

Leave a comment