강의

멘토링

커뮤니티

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

eagle1129님의 프로필 이미지
eagle1129

작성한 질문수

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

24. Jolly Jumpers

질문있습니다..!

작성

·

193

0

이 코드는 왜 틀린지 궁금합니다

a=ch[i]-ch[i+1]값의 절댓값

tmp=ch배열에 있는 입력값의 서로 인접해 있는 두 수의 차의 합

sum=결과가  yse일지 no일지의 기준

으로 잡고 문제를 풀었습니다

#include <stdio.h>

int main() {

 int n,i,tmp=0,sum=0,cnt=0,a,ch[101];   

 scanf("%d",&n);

    for(i=0;i<n;i++){

     

     scanf("%d",&ch);

     

 }

    for(i=0;i<n-1;i++){

     

 if(ch[i]-ch[i+1]>0)

    a=ch[i]-ch[i+1];  

    

    else if(ch[i]-ch[i+1]<0) 

    a=-(ch[i]-ch[i+1]);

    

    tmp=tmp+a;

 

    for(i=0;i<n;i++){

 cnt++;

 sum=sum+cnt;

}

if(tmp==sum) 

printf("yes");

else

printf("no"); 

 

 return 0;

}

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

ch 배열에  입력값이 들어오지 않았습니다. 한 번 출력해보세요. 그리고 1부터 n-1까지의 누적합을 구하는  sum값도 1부터 n까지의 합의로 구하고 있습니다.  위 코드의 해법인 이웃한 두수의 차들의 합이 1부터 n-1까지의 합과 같다고 해서 무조건 YES는 아닙니다. 

6

5  6  9  12  15  20

같은 입력은 정답이 NO이지만 위에 코드 방법으로는 YES가 나옵니다.

문제를 풀다가 에러가 나면 최소한 1시간 정도는 본인이 에러를 찾으려고 노력해보고 질문을 하시면 좋겠습니다.

그래야 실력이 늡니다.

eagle1129님의 프로필 이미지
eagle1129

작성한 질문수

질문하기