작성
·
155
0
반복문 안에서 두 수의 차이를 비교하는 부분인 int pos = abs(prev - num)을, prev처럼 따로 변수를 만들지 않고 저는 배열을 만들어 입력받게 했는데요, int pos = abs(jolly[i] - jolly[i-1]) 처럼 말입니다.
이렇게 하면 5번 케이스에서 시간초과 오류가 나는데 혹시 이유를 알 수 있을까요? 저 부분 빼고는 모두 동일한데 왜 저렇게 하면 타임리미트가 되는지 궁금합니다. C++에서 배열 계산이 원래 느린편인가요?
cin >> jolly[0];
for(int i = 1; i < N; i++){
cin >> jolly[i];
int pos = abs(jolly[i] - jolly[i - 1]); // 타임에러 부분
// 이하 생략
}
답변 4
0
0
0
main 내부의 코드입니다. 시간초과가 나거나 이번에는 exit_code 에러가 뜨기도 하네요. check배열이 반드시 vector로 만들어져야 할까요?
int main() {
freopen("input.txt", "rt", stdin);
ios_base::sync_with_stdio(false);
int N;
int jolly[101] = {0};
bool check[101] = {false};
cin >> N;
cin >> jolly[0];
for(int i = 1; i < N; i++){
cin >> jolly[i];
int tmp = abs(jolly[i] - jolly[i - 1]);
if(check[tmp] == true || tmp > N || tmp == 0){
cout << "NO";
exit(0);
}
else check[tmp] = true;
}
cout << "YES";
}
0