-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
질문있습니다..!
21.01.08 21:59 작성 조회수 141
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;
}
답변을 작성해보세요.
0
김태원
지식공유자2021.01.09
안녕하세요^^
ch 배열에 입력값이 들어오지 않았습니다. 한 번 출력해보세요. 그리고 1부터 n-1까지의 누적합을 구하는 sum값도 1부터 n까지의 합의로 구하고 있습니다. 위 코드의 해법인 이웃한 두수의 차들의 합이 1부터 n-1까지의 합과 같다고 해서 무조건 YES는 아닙니다.
6
5 6 9 12 15 20
같은 입력은 정답이 NO이지만 위에 코드 방법으로는 YES가 나옵니다.
문제를 풀다가 에러가 나면 최소한 1시간 정도는 본인이 에러를 찾으려고 노력해보고 질문을 하시면 좋겠습니다.
그래야 실력이 늡니다.
답변 1