-
[Javascript] Codility Lesson9 - MaxSliceSum알고리즘, 자료구조/Codility 2022. 6. 22. 22:00
문제: https://app.codility.com/programmers/lessons/9-maximum_slice_problem/max_slice_sum/
문제 요약- 정수로 구성된 배열 A가 주어졌을 때, 합산 결과가 가장 큰 연속 구간의 합을 구하여라.
풀이
function solution(A) { let maximum = A[0]; // 누적값을 저장할 변수 accum let accum = A[0]; for(let i = 1; i < A.length; i++) { // 누적값과 A[i]의 합이 A[i]보다 작으면 accum을 A[i]로 변경한다 accum = accum + A[i] < A[i] ? A[i] : accum + A[i]; // accum이 maximumq보다 크면 maximum을 accum으로 변경한다 maximum = accum > maximum ? accum : maximum; }; return maximum; }
https://app.codility.com/ 이렇게 연속된 구간의 합산 or 연속된 구간의 양 끝 값 계산과 같은 문제를 풀 때 아래 2개 컨셉을 기억해야겠다.
1) 메모이제이션을 사용하여 중첩 루프문을 피할 것
2) 루프는 끝까지 돌되, 문제가 요구하는 바에 따라 시작점은 변경될 수 있다는 것'알고리즘, 자료구조 > Codility' 카테고리의 다른 글
[Javascript] Codility Lesson1 - BinaryGap (0) 2022.07.19 [Javascript] Codility Lesson9 - MaxDoubleSliceSum (0) 2022.07.11 [Javascript] Codility Lesson9 - MaxProfit (0) 2022.06.21 [Javascript] Codility Lesson 8 - Dominator (0) 2022.06.13 [Javascript] Codility Lesson 7 - Fish (0) 2022.06.08