프로그래머스 - 쿠키 구입

J-Keonho·2020년 9월 27일
0

해당 알고리즘 자료는 제가 직접 푼 것도 있지만 다른 분들의 풀이과의 비교를 통해 더 나은 알고리즘을 공부하기 위해 정리한 것들입니다.

프로그래머스 - 쿠키 구입

https://programmers.co.kr/learn/courses/30/lessons/49995

풀이 : 각 index를 기준으로 왼쪽, 오른쪽 쿠키의 합을 비교하여 같으면 max에 저장한다.

class Solution {
    static int max = 0;
    public int solution(int[] cookie) {
        for (int i = 0; i < cookie.length - 1; i++) {
			solve(cookie, i);
		}
        return max;
    }
    private static void solve(int[] cookie, int i) {
		int l = i, left = cookie[l];
		int r = i + 1, right = cookie[r];
		while (l >= 0 && r < cookie.length) {
			if (left == right) max = Math.max(max, left);
			if (left <= right && --l >= 0) left += cookie[l];
			else if (left >= right && ++r < cookie.length) right += cookie[r];
		}
	}
}
profile
안녕하세요.

0개의 댓글