• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

22. 때때로 time limit

23.06.28 21:54 작성 조회수 161

0

같은 코드인데, 한번은 array(배열)로, 한번은 vector로 두었습니다.

array로 했을 때는 4번예제에서 time_limit이 났는데 vector로 했을 때는 다 success였습니다. 같은 경우엔 array가 더 빠른거 아닌가요? 왜 이러죠

#include <iostream>
#include <vector>

int main(void)
{
	int n, k, max, sum = 0;
	 std::vector<int> tem(100001);

	scanf("%d %d", &n, &k);
	tem[0] = 0;
	for (int i = 1; i <= n; i++) {
		scanf("%d", &tem[i]);
		sum += tem[i];
		if (i == k)
			max = sum;
		else if (i >= k) {
			sum -= tem[i - k];
			if (sum > max)
				max = sum;
		}
	}
	printf("%d", max);

	return 0;
}
#include <iostream>

int main(void)
{
	int n, k, max, sum = 0;
	int tem[100001];

	freopen("input.txt", "rd", stdin);
	scanf("%d %d", &n, &k);
	tem[0] = 0;
	for (int i = 1; i <= n; i++) {
		scanf("%d", &tem[i]);
		sum += tem[i];
		if (i == k)
			max = sum;
		else if (i >= k) {
			sum -= tem[i - k];
			if (sum > max)
				max = sum;
		}
	}
	printf("%d", max);

	return 0;
}

답변 1

답변을 작성해보세요.

0

안녕하세요^^

같은 코드이면 벡터가 좀 느리다고 저도 알고있습니다. 저는 벡터나 배열이나 속도 차이는 거의 없다고 보는 입장입니다. 특히 하나는 통과되고 하나는 타임리밋이 날 정도의 차이는 아니라고 생각하는데 저도 뭐라 답하기 힘드네요.