인프런 커뮤니티 질문&답변

여승준님의 프로필 이미지
여승준

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

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

해결된 질문

작성

·

233

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 에러가 나지 않도록 짜야겠죠.

여승준님의 프로필 이미지
여승준

작성한 질문수

질문하기