[1스4코2파] # 174. LeetCode 238. Product of Array Except Self (Array&Hashing)

gunny·2023년 6월 26일
0

코딩테스트

목록 보기
175/530

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

Rule :

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

START :

[3코1파] 2023.01.04~ (174차)
[4코1파] 2023.01.13~ (166일차)
[1스4코1파] 2023.04.12~ (77일차)
[1스4코2파] 2023.05.03 ~ (55일차)

Today :

2023.06.26 [174일차]
LeetCode Patterns
https://leetcode.com/problems/product-of-array-except-self/description/

Product of Array Except Self

https://leetcode.com/problems/product-of-array-except-self/description/

문제 설명

int형 datatype의 원소로 구성된 list가 주어질 때,
각 리스트의 index의 원소만 빼고 나머지 원소의 곱을 retrun

예 : nums = [1,2,3,4]
output = [24,12,8,6]

문제 풀이 방법

처음에는 그냥 reduce로 nums에 있는걸 모두 곱하고
인덱스값으로 나눠준 값으로 return 할랬더니 0이 있는 테스트케이스가 있어서 0이 있으면 0 있는 인덱스만 곱을 return 아니면 0 return하게 짰더니 이제 0이 2개 인 테스트 케이스가 있고
테스트 케이스를 튀기고 튀기고 튀기고
이러다가 털림

영상보니까 prefix랑 postfix랑 해서 곱한걸로 return 해주는게 있던데 저번에 재호 한테 물어본 덧셈 인가 그거랑 비슷한 문제였음
ㅗㅗㅗ

내 코드

class Solution:
    def productExceptSelf(self, nums: List[int]) -> List[int]:
        ans = [1] * (len(nums))
        prefix, postfix = 1,1

        for i in range(len(nums)):
            ans[i] = prefix
            prefix *= nums[i]

        for i in range(len(nums)-1, -1, -1):
            ans[i] *= postfix
            postfix *= nums[i]

        return ans

증빙

여담

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

0개의 댓글