์šฐ๊ทœ์ด์ธ์šฐ์œค
Eager To Learn ๐ŸŒŒ
์šฐ๊ทœ์ด์ธ์šฐ์œค
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿก ํ™ˆ
  • ๐Ÿš€ ๊นƒํ—ˆ๋ธŒ
  • โ›… ํƒœ๊ทธ ํด๋ผ์šฐ๋“œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (217)
    • ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS (170)
      • JAVA (82)
      • MYSQL (1)
      • Docker (2)
      • PYTHON (24)
      • LeetCode 150 (39)
      • Algorithm ๊ธฐ๋ฒ• (1)
      • ๋ฐ”ํ‚น๋… (21)
    • ๋ธ”๋กœ๊ทธ ์ด์‚ฌ (0)
    • Error (1)
    • CS (15)
      • DataBase (2)
      • OS (7)
      • Network (1)
      • Spring (1)
      • ์ž๋ฃŒ๊ตฌ์กฐ (3)
      • Java (1)
    • Learned (7)
      • Spring (7)
    • ๊ฐœ๋ฐœ์„œ์  (15)
      • ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (1)
      • ์˜ค๋ธŒ์ ํŠธ - ์กฐ์˜ํ˜ธ (7)
      • ์นœ์ ˆํ•œ SQL ํŠœ๋‹ (7)
    • ํšŒ๊ณ  (2)
hELLO ยท Designed By ์ •์ƒ์šฐ.
์šฐ๊ทœ์ด์ธ์šฐ์œค

Eager To Learn ๐ŸŒŒ

๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/PYTHON

[ํŒŒ์ด์ฌ PYTHON · ์ž๋ฐ” JAVA] LeetCodeใ€Product of Array Except Selfใ€‘

2023. 3. 10. 19:15
 

Product of Array Except Self - LeetCode

Can you solve this real interview question? Product of Array Except Self - Given an integer array nums, return an array answer such that answer[i] is equal to the product of all the elements of nums except nums[i]. The product of any prefix or suffix of nu

leetcode.com


์ž๋ฐ” ์ฝ”๋“œ

import java.util.*;
class Solution {
    public int[] productExceptSelf(int[] nums) {
        int result = 1;
        int zeroIdx= -1;
        int[] ans = new int[nums.length];

        for(int i=0;i<nums.length;i++){
            if(nums[i]==0){
                if(zeroIdx==-1){
                    zeroIdx = i;
                }else{
                    return ans;
                }
            }else{
                result*=nums[i];
            }
        }

        if(zeroIdx!=-1){
            ans[zeroIdx] = result;
        }else{
            for(int i=0;i<nums.length;i++){
                ans[i] = result/nums[i];
            }
        }
        
        return ans;
    }
}

ํŒŒ์ด์ฌ ์ฝ”๋“œ

class Solution(object):
    def productExceptSelf(self, nums):
        result = 1
        zero = []

        # for๋ฌธ ํƒ์ƒ‰์œผ๋กœ nums์— 0์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ & 0์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์›์†Œ์˜ ๊ณฑ ๊ณ„์‚ฐ
        for i in range(len(nums)):
            num = nums[i]
            if num == 0:
                zero.append(i)
            else:
                result *= num

        # nums ์— zero๊ฐ€ 2๊ฐœ ์ด์ƒ์ธ ๊ฒฝ์šฐ, ๋ชจ๋“  ๊ฐ’์€ 0์ด ๋œ๋‹ค.
        if len(zero)>=2:
            return [0]*len(nums)

        # nums์— zero๊ฐ€ 1๊ฐœ์ธ ๊ฒฝ์šฐ, zero์ธ ์›์†Œ ์œ„์น˜๋ฅผ ์ œ์™ธํ•œ ๋‹ค๋ฅธ ๊ณณ์€ ๋‹ค 0, zero ์œ„์น˜๋Š” ๋ชจ๋“  ์›์†Œ์˜ ๊ณฑ์ด ๋จ
        elif len(zero)==1:
            return [0]*zero[0] + [result] + [0]*(len(nums)-zero[0]-1)

        ans = []

        # nums ์— 0์ด ํ•˜๋‚˜๋„ ์—†๋Š” ๊ฒฝ์šฐ, ๋ชจ๋“  ์›์†Œ์˜ ๊ณฑ์„ ํ•ด๋‹น ์›์†Œ๋กœ ๋‚˜๋ˆ„๋ฉด ๋จ
        for i in range(len(nums)):
                ans.append(result//nums[i])
                
        return ans

 

์ด๋ฒˆ ๋ฌธ์ œ๋Š” ์ฝ”๋“œ์— ์ฃผ์„์œผ๋กœ ์„ค๋ช…ํ•ด๋‘์—ˆ๋‹ค.

 

nums์— 0์ด ํ•˜๋‚˜๋„ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด, ๋ชจ๋“  ์›์†Œ์˜ ๊ณฑ์—์„œ ํ•ด๋‹น ์›์†Œ๋ฅผ ๋‚˜๋ˆˆ ๊ฐ’์ด output์ด ๋œ๋‹ค.

 

nums์— 0์ด 1๊ฐœ ์กด์žฌํ•˜๋ฉด, 0์ด ์žˆ๋Š” ์œ„์น˜๋ฅผ ์ œ์™ธํ•œ ๊ณณ์€ ๋‹ค 0์ด ๋œ๋‹ค.

 

nums์— 0์ด 2๊ฐœ ์ด์ƒ ์กด์žฌํ•˜๋ฉด, ๋ชจ๋“  ๊ฐ’์ด 0์ด ๋œ๋‹ค.

    '๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/PYTHON' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [ํŒŒ์ด์ฌ PYTHON · ์ž๋ฐ” JAVA] LeetCodeใ€Maximum Product Subarrayใ€‘
    • [ํŒŒ์ด์ฌ PYTHON · ์ž๋ฐ” JAVA] LeetCodeใ€Maximum Subarrayใ€‘
    • [ํŒŒ์ด์ฌ PYTHON · ์ž๋ฐ” JAVA] LeetCodeใ€Contains Duplicateใ€‘
    • [ํŒŒ์ด์ฌ PYTHON · ์ž๋ฐ” JAVA] LeetCodeใ€Best Time to Buy and Sell Stockใ€‘
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ๊ฐœ๋ฐœ์ž ๊ฟˆ๋‚˜๋ฌด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”