채점프로그램 구동 문제
519
작성한 질문수 1
안녕하세요 수업 열심히 듣고 따라가는 학생입니다!
37번 문항에 질문 및 문제가 생겨 문의드립니다.
아래와 같은 코드를 작성했고, 이를 실행 후 채점폴더를 활용해 채점했을때 test 3,4,5번에서 exit_code 에러가 발생합니다.
#include <iostream>
using namespace std;
int scan(int n, int* arr, int len);
int main() {
int S;
int N;
int scanres;
cin >> S >> N;
int* cache = new int[S]();
int* work = new int[N];
for(int i = 0; i<N; i++){
cin >> work[i];
}
cache[0] = work[0];
for(int i = 1; i<N; i++){
scanres = scan(work[i], cache, S);
if(scanres != -1){
//캐시에 있다
for(int j = scanres - 1; j >= 0; j--){
cache[j+1] = cache[j];
}
cache[0] = work[i];
}
else{
//캐시에 없다
for(int j = S-1; j >= 0; j--){
cache[j+1] = cache[j];
}
cache[0] = work[i];
}
}
for(int i = 0; i<S; i++){
cout << cache[i] << " ";
}
return 0;
}
int scan(int n, int* arr, int len){
for(int i = 0; i < len; i++){
if(arr[i] == n)
return i;
}
return -1;
}아무리 봐도 문제를 모르겠어 input 3,4,5를 열고 제 코드에 대입해 실행해본 결과 output 3,4,5와 일치하는 결과가 출력되었습니다.
아래 그림에서 왼쪽은 채점프로그램 점수이고, 오른쪽 위는 input 3 프로그램 실행시 결과, 그 아래는 output 3 파일입니다. input3 실행결과와 output3 결과가 일치하는것을 확인하실 수 있습니다.

어느부분에서 에러가 나는 것인지 조언 부탁드리겠습니다.
답변 1
0
안녕하세요^^
캐시에 없을 때 index out of range 에러가 납니다. C++이 index out of range 에러를 그냥 넘어가서 그렇지 다른 언어였다면 에러가 나는 코드입니다.
for(int j = S-1; j >= 1; j--){
cache[j] = cache[j-1];
}위와 같이 고치면 됩니다.
87번 채점 프로그램에 오류가 있는 것 같습니다.
0
91
2
그리디 파트
0
115
2
안녕하세요. 선생님(54번 코드 관련 문의)
0
143
2
테스트 파일 exit_coe_1, time_limit_exceeded 질문
0
143
1
C언어로 코드를 짜면 채점 시에 한 문제 빼고 시간 초과가 발생하는데 해결하는 방법이 있을까요?
0
173
1
19번 질문있습니다
0
123
1
6번 관련 채점오류입니다
0
88
2
22번 문제는 C로 풀어주신 건가요 C++로 풀어주신 건가요?
0
166
2
dev C++ 콘솔창 바로 닫힘
0
245
1
최신화하기
0
171
1
채점이 안되요...
1
261
1
안녕하세요 강사님 정렬에 대해서 설명이 조금 더 듣고 싶습니다.
0
113
1
45번 공주구하기 문제를 list를 이용해서 이렇게 풀어도 될까요?
0
155
1
39번 두 배열 합치기 문제 채점 오류인가 코드 오류인가
0
155
0
채점기에서 틀렸다고 나오는데 이유를 모르겠습니다.
0
150
2
해당 강의에서 C언어로만 진행하는 강의 문의 건
0
145
2
87번 문제 섬나라 아일랜드 질문
0
128
1
16번 문제에서 직접 답을 대입하면 정답이 나오는데 채점에서 wrong answer가 나옵니다.
0
149
1
40번 교집합 문제
0
166
1
43번 뮤직비디오 문제 테스트케이스 4번을 만족 못합니다.
0
170
1
41. 연속된 자연수의 합 문제 질문있습니다.
0
166
1
질문있습니다.
0
193
2
시간초과가 나요
0
172
1
43번 문제 3 ~ 5번에 문제가 있는것 같습니다.
0
249
1





