[LeetCode] 1013. Partition Array Into Three Parts With Equal Sum

Chobby·2025년 6월 12일
1

LeetCode

목록 보기
446/479

😎풀이

  1. 총합이 3으로 나누어 떨어지는지 확인
  2. 각 배열의 부분 합을 확인
  3. 각 요소를 합산하며 부분 합과 맞아 떨어지는지 확인
  4. 맞아 떨어지는 부분 합이 3개 이상인지 확인 (3개가 아닌 3개 이상인 경우는 다음과 같은 경우를 방지하기 위함 [0, 0, 0, 0]
function canThreePartsEqualSum(arr: number[]): boolean {
    const sum = arr.reduce((acc, cur) => acc + cur, 0)
    if(sum % 3 !== 0) return false
    const partValue = sum / 3
    let curSum = 0
    let parts = 0
    for(let i = 0; i < arr.length; i++) {
        curSum += arr[i]
        if(curSum === partValue) {
            curSum = 0
            parts++
        }
    }
    return parts >= 3
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글