[leetcode] 2574.

2574. 좌우 합 차이>

(문제)


번역 :

(정수 배열 반환, 정수 응답 배열 반환
Answer.Length == Numbers.Length
Answer(i) = |leftSum(i) – rightSum(i)| 보지마.

여기
leftSum(i)는 nums 배열에서 인덱스 i 왼쪽에 있는 요소의 합입니다.
그러한 요소가 없으면 leftSum(i) = 0입니다.

rightSum(i)은 nums 배열에서 인덱스 i 오른쪽에 있는 요소의 합입니다.
그러한 요소가 없으면 rightSum(i) = 0입니다.

답변 배열을 반환합니다.
)

→ 왼쪽/오른쪽 배열을 가져오고 | 왼쪽 정렬 – 오른쪽 정렬 | 찾는 문제

(답변)

import java.util.Arrays;

class Solution {
    public int() leftRigthDifference(int() nums) {
        int() answer = new int(nums.length); // answer 배열의 크기는 nums 배열의 크기와 같다
        int() left = new int(nums.length); // 왼쪽
        int() right = new int(nums.length); // 오른쪽

        int sum = 0; // 합을 구할 변수

        for (int i = 1; i < answer.length; i++) { // 왼쪽부터 구하기
            left(i) = sum + nums(i - 1);
            sum += nums(i - 1);
        }

        sum = 0; // 합계 값 초기화(왼쪽 구할 때 썼으니까)

        for (int i = nums.length - 2; i >= 0 ; i--) { // 오른쪽 구하기
            right(i) = sum + nums(i + 1);
            sum += nums(i + 1);
        }

        for (int i = 0; i < nums.length; i++) { // 최종 answer 구하기
            answer(i) = Math.abs(left(i) - right(i)); // 절댓값 씌우는 Math.abs사용
        }
        return answer;
    }
    public static void main(String() args){
        Solution sol = new Solution();
        int() nums = {10,4,8,3};
        int() nums2 = {1};
        System.out.println(Arrays.toString(sol.leftRigthDifference(nums)));
        System.out.println(Arrays.toString(sol.leftRigthDifference(nums2)));
    }
}

원천

https://leetcode.com/problems/left-and-right-sum-differences/description/

LeetCode – 세계 최고의 온라인 프로그래밍 학습 플랫폼

코딩 기술을 향상하고 빠르게 일자리를 구하세요. 지식을 넓히고 다음 취업 면접을 준비할 수 있는 최고의 장소입니다.

leetcode.com