[프로그래머스] Lv4. 쿠키 구입- JavaScript

이상돈·2023년 10월 6일
0
post-thumbnail

문제분류 : 코팅테스트 연습

난이도 : Level 4

출처 : 프로그래머스 - 쿠키 구입

문제

제한사항

📌 내가 생각한 풀이

l~m은 첫째, m+1~r은 둘째이다. 여기서 공통된 부분 m을 움직이면서 값을 확인하자. 값이 같다면 더 큰 값이 존재할 수 있으므로, 멈추지 말아야하는 것이 핵심이다.
function solution(cookie) {
    var answer = 0;
    let len = cookie.length
    let sum = cookie.reduce((prev,now)=>prev+=now);
    let half = Math.floor(sum/2);
    for(var i =1; i<=len-1; i++){
        let lStandard = i-1;
        let rStandard = i;
        let sum1 = cookie[lStandard];
        let sum2 = cookie[rStandard];
        while(1){
            if((sum1 === sum2) && (answer < sum1)){
                answer =  sum1
            }else if(sum1 <= sum2 && lStandard !== 0){
                lStandard--;
                sum1 += cookie[lStandard];
            }else if(sum1 >= sum2 && rStandard !== len-1){
                rStandard++;
                sum2 += cookie[rStandard];
            }else{
                break;
            }
        }
    }
    return answer;
}

📌 느낀점

투 포인터 문제였다. 여기서 핵심은 O(n^3)을 어떻게 O(n^2)으로 줄일 수 있냐의 문제였는데, 기준값을 움직이며 확인하면 됐었다.

profile
사람들의 더 나은 삶을 위한 개발자

0개의 댓글