블로그

[2일차] 시간복잡도 E - 2748: 부분합 본문

SDS ( -> PS)

[2일차] 시간복잡도 E - 2748: 부분합

왕방토 2022. 1. 6. 01:34
728x90

골드 Ⅳ

 

#include <iostream>
using namespace std;

int arr[100001] = { 0, };
int main() {
	int N, S;
	scanf("%d%d", &N, &S);
	int ans = N + 1;
	for (int i = 0; i < N; i++) {
		scanf("%d", &arr[i]);
	}
	int low = 0;
	int high = 0;
	int sum = 0;
	while (high <= N) {
		if (sum >= S) {
			if ((high - low) < ans) ans = (high - low);
			sum -= arr[low];
			low++;
		}
		else {
			sum += arr[high];
			high++;
		}
	}
	if (ans == N + 1) printf("0");
	else printf("%d", ans);
}

투 포인터 문제..

아마 첨으로 푼 투 포인터 실버 문제랑

거의 똑같은거 같은데

뭐가 다르지 나중에 확인 ㄱ

Comments