입력 조건을 맞추는데 무지 오래 걸렸다...ㅠ.ㅠㅋ
별생각없이 만들다가 필요 없이 함수를 쓴듯.
abs를 깜빡했군요;;
열심히 해야 겠근영;;
~cpp
#include <iostream>
#include <cctype>
using namespace std;
const int MAX = 3000;
const int MAXLine = 10;
int checkJolly(int * array, int differ, bool programEnd = 0);
void main(){
int array[MAX] = {0};
int differ; // 10개 입력되면 9가 나온다.
char endCheck;
differ = endCheck = 0;
while(1){
if( !(cin>>array[differ]) )break;
differ++;
cin.get( endCheck );
if( endCheck == '\n' ){
checkJolly( array, differ );
differ = 0;
}
}
checkJolly( array, differ, 1 );
}
int checkJolly(int * array, int differ, bool programEnd){ //differ는 n-1의 값을 가진다.
static bool boolJolly[10]={1,1,1,1,1,1,1,1,1,1}; //처리 결과를 저장하는 배열 기본값은 모두 jolly 이다.
static int line = 0;
//결과 출력.
if( programEnd ){
for(int i = 0; i < line; i++ ){
if( boolJolly[i] )cout<<"Jolly\n";
else cout<<"Not jolly\n";
}
return 0;
}
//jolly jumper 판단
for(int i = 1; i < differ - 1; i++){
if( ( differ < ( array[i] - array[i-1])) || (differ < ( array[i-1] - array[i])) || (differ < ( array[i] - array[i+1]) ) || (differ < ( array[i+1] - array[i]) ) ) { //절대값 판단
boolJolly[ line ] = 0; // NOTjolly 임을 boolJolly배열에 저장
}
}
line++;
return 0;
}