본문 바로가기
자료구조&알고리즘/배열

[leetcode] 배열 - 238번 Product Of ArrayExceptSelf (Java)

by _din 2021. 10. 30.

문제링크

 

Product of Array Except Self - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

 

접근한 방법

  • 배열

 


풀이방법

처음에 이중 반복문으로 풀어서 시간초과가 나왔다.

따라서, 블로그를 참조하여 이해할 수 있었다.

 


 

소스코드

package leetcode.array;

import java.util.EnumSet;

public class Q238_ProductOfArrayExceptSelf {
    public static int[] productExceptSelf(int[] nums) {
        int[] result = new int[nums.length];

        // result를 1로 초기화
        for(int i=0 ; i<nums.length ; i++){
            result[i] = 1;
        }

        // nums의 기준 왼쪽부터 계산하여 result 배열에 넣기 (첫번째 인덱스는 생략)
        for(int i=1 ; i<nums.length; i++){
            result[i] = result[i - 1] * nums[i - 1];
        }

        // nums의 기준 오른쪽부터 계산하여 nums 배열에 넣기 (마지막 인덱스는 생략)
        for (int i = (nums.length-2); i >= 0; i--) {
            nums[i] = nums[i] * nums[i + 1];
        }

        // 앞에서 구한 result와 nums를 곱해준다. (마지막 인덱스는 생략)
        for (int i = 0; i < nums.length - 1; i++) {
            result[i] = result[i] * nums[i + 1];
        }

        return result;

    }

    public static void main(String[] args) {
        int[] nums = {1,2,3,4};
        int[] result = productExceptSelf(nums);

        for (int i = 0; i<result.length; i++) {
            System.out.println(result[i]);
        }
    }
}
반응형

댓글