• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

시간초과가 뜹니다.

19.04.23 16:01 작성 조회수 139

0

제가 직접 짠 코드로 채점시 5번 항목에서 자꾸 시간초과가 뜹니다. 그래서 강사님이 보여주신 코드로 똑같이 코딩을 해보았는데도 여전히 5번에서 시간초과로 뜨네요...

채점기에 이상이 있다고 봐야할까요? 

답변 1

답변을 작성해보세요.

0

인접한 두 수의 차인 pos값이 n-1값보다 큰 경우

if(ch[pos]==0 && pos>0 && pos<n  ) ch[pos]=1;  이렇게 짜면  vector<int> ch(n); 선언했기 때문에

ch 벡터 인덱스가 0부터 n-1까지 존재해  ch[pos]==0부분에서 없는 인덱스를 참조하는 잘못을 합니다.

그래서 if(pos>0 && pos<n && ch[pos]==0) ch[pos]=1; 이렇게 짜서 pos값이 n보가 크거나 같으면 pos>0 && pos<n 이 거짓이 되어 뒤쪽 ch[pos]==0부분을 수행하지 않도록 했어야 했었습니다.  

죄송합니다. 영상은 새로 찍어서 올리겠습니다.