• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

38번 문제 시간초과

21.02.17 14:25 작성 조회수 85

0

선생님 안녕하세요. 강의 잘 듣고 있습니다.

38번 문제를 어렵게 어렵게 혼자 풀어봤는데요 답은 잘 나오지만 시간 초과로 채점기에 0점이 나왔습니다.

선생님께서 풀어주신 것과 제 코드를 비교해 보면 pos 변수를 사용 여부 차이 정도 있는 것 같은데 이렇게 코드를 짜면 왜 타임 리밋이 나올까요?

좋은 강의 감사드립니다 :)

#include <iostream>
#include <vector>
#include <algorithm>
#include <utility>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
	ios_base::sync_with_stdio(false);
	freopen("input.txt", "rt", stdin);
	int n;
	cin>>n;
	vector<int> is(n+1);
	vector<int> os(n+1);
	for(int i=1;i<n+1;i++){
		cin>>is[i];
	}
	for(int i=n;i>=1;i--){
		for(int idx=i;idx<i+is[i];idx++){
			os[idx]=os[idx+1];
		}
		os[i+is[i]]=i;
	}
	for(int z=1;z<n+1;z++){
		cout<<os[z]<<" ";
	}
	return 0;
}

답변 1

답변을 작성해보세요.

0

안녕하세요^^

제 컴퓨터에서는 100점 나옵니다. 

제가 보기에는 index out of range 에러도 없어 보입니다. 혹시 모르니 벡터 잡을 때 n+3정도로 넉넉히 잡아보세요.