• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

24번 jolly jumpers 무엇이 문제일까요?

23.04.26 20:42 작성 조회수 156

0

//24 jolly jumpers
// 5번 케이스에서 NO가 나와야 하는데, YES가 나옵니다.
// 배열 인덱스 범위를 조절하는 코드를 추가하면 문제야 잘 해결된다지만, 
// 왜 5번케이스에 대해서 YES가 뜨는지 궁금합니다!

#include <stdio.h>
#include <cmath>
using namespace std;
int arr[105];
int N, i, a, b,subs;
int main(void){
    scanf("%d", &N);
    
    scanf("%d", &a);
    for(i=1; i<N; i++){
        scanf("%d", &b);
        subs = abs(a-b);
        a=b;

        if(arr[subs]!=0) {
            printf("NO");
            return 0;
        }
        arr[subs]++;
    }

    for(i=1; i<=N-1; i++){
        if(arr[subs]==0) {
            printf("NO");
            return 0;
        }
    }
    printf("YES");
    return 0;
}

답변 1

답변을 작성해보세요.

1

안녕하세요^^

제 컴퓨터에서는 5번 케이스가 NO라고 뜹니다.

이것은 각 컴퓨터마다 환경에 따라 배열의 index out of range가 났을 때 메모리를 관리하는 방법에 차이가 있어서 그런것 같습니다. 여튼 개발자라면 index out of range 에러가 나지 않도록 짜야겠죠.