• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

Jolly Jumper 문제에서 질문 하나만 드립니다

20.10.12 21:53 작성 조회수 118

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

수강생님의 프로필

수강생

질문자

2020.10.20

그럼 제 컴퓨터 문제였군요. 답변 감사합니다 :)

0

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

0

수강생님의 프로필

수강생

질문자

2020.10.17

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

안녕하세요^^

제 코드와 큰 차이는 없어보입니다.

제 컴퓨터에서 채점해보게 전체코드를 올려보세요.