본문 바로가기
카테고리 없음

쿠키 구입 C++

by paysmile 2022. 3. 25.

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

 

코딩테스트 연습 - 쿠키 구입

과자를 바구니 단위로 파는 가게가 있습니다. 이 가게는 1번부터 N번까지 차례로 번호가 붙은 바구니 N개가 일렬로 나열해 놨습니다. 철수는 두 아들에게 줄 과자를 사려합니다. 첫째 아들에게는

programmers.co.kr

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<int> cookie) {
	int answer = 0;

	for (int i = 1; i < cookie.size(); i++) {
		int left = i-1;
		int right = i;
		int tmp1 = cookie[left];
		int tmp2 = cookie[right];

		while (true) {
			if (tmp1 == tmp2) {
				answer = max(answer, tmp1);
				right++;
				if (right < cookie.size()) {
					tmp2 += cookie[right];
				}
				else {
					break;
				}

				left--;
				if (left >= 0) {
					tmp1 += cookie[left];
				}
				else {
					break;
				}
			}

			if (tmp1 > tmp2) {
				right++;
				if (right < cookie.size()) {
					tmp2 += cookie[right];
				}
				else {
					break;
				}
			}
			else if (tmp1 < tmp2) {
				left--;
				if (left >= 0) {
					tmp1 += cookie[left];
				}
				else {
					break;
				}
			}
		}
	}
	return answer;
}