수열 문제 ㅠㅠ.. 어떻게 든 풀어는 봤는데.. 도와줏메 [소스첨부했어요]
라임나무
수열 문제 ㅠㅠ.. 어떻게 든 풀어는 봤는데.. 도와줏메 [소스첨부했어요]질문 요약 :소스 출력해 봤는데.. 값은 다 -1씩 나오길래.. +1하면 될듯했는데.. 그게 생각처럼 안되는듯 ..
질문 내용 :
문제 수열 - KOI - 2009
0에서부터 9까지의 숫자로 이루어진 N개의 숫자가 나열된 수열이 있다. 그 수열 안에서 연속해서 커지거나 (같은것 포함), 혹은 연속해서 작아지는 (같은것 포함) 수열중 가장 길이가 긴 것을 찾아내어 그 길이를 출력하는 프로그램을 작성하라.
예를 들어 수열 1 2 2 4 4 5 7 7 2의 경우에는 1=2=2=4=4=5=7=7이 가장 긴 구간이 되므로 그 길이 8을 출력한다.
수열 4 1 3 3 2 2 9 2 3의 경우에는 3=3=2=2가 가장 긴 구간이므로 그 길이 4를 출력한다.
또 1 5 3 6 4 7 1 3 2 9 5의 경우에는 연속해서 커지거나 작아지는 수열의 길이가 3 이상인 경우가 없으므로 2를 출력해야 한다.
프로그램 실행 시간은 1초를 넘을 수 없다. 부분 점수는 없다.
입력방식
입력 파일의 이름은 INPUT.TXT로 해야한다. 첫째 줄에는 수열의 길이 N이 주어지고, 둘째 줄에는 N개의 숫자가 빈칸을 사이에 두고 주어진다.
N은 1 이상 100,000 이하의 정수이다.
출력방식
출력 파일의 이름은 OUTPUT.TXT로 해야한다. 첫째 줄에 가장 긴 길이를 출력한다.
입력의 예(INPUT.TXT)
9
1 2 2 4 4 5 7 7 2
------------------------------
출력의 예(OUTPUT.TXT)
8
------------------------------
입력의 예.2(INPUT.TXT)
9
4 1 3 3 2 2 9 2 3
------------------------------
출력의 예.2(OUTPUT.TXT)
4
------------------------------
입력의 예.3(INPUT.TXT)
11
1 5 3 6 4 7 1 3 2 9 5
------------------------------
출력의 예.3(OUTPUT.TXT)
2
------------------------------
이거를 소스로 어떻게 해봤는데..#includestdio.h
FILE *in=fopen(input.txt,r);
FILE *out=fopen(output.txt,w);
int main(void)
{
int b[100000]; //1 ~ 100000의 값까지 받는 정수이다.
int i,j;
int a=0,d=0,tmp=0,tmd=0; //a와 b는 tmp와 tmd의 저장값, tmp는연속해서 커질때 증가하는 값,tmd는 작아질때 증가하는값.
fscanf(in,%d,&j);
for(i=0; ij; i++)
fscanf(in,%d ,&b[i]); //b[0] ~ b[j-1]까지 값을 받는거죠..
for(i=0; ij; i++)//연속해서 커질때.
{
if(b[i]=b[i+1])
{
tmp++;
if(tmpa)
a=tmp;
}else if(b[i]b[i+1]){ //값이 작아질때 tmp를 0으로 초기화.
tmp=0;
}
}
for(i=0; ij; i++)//연속해서 작아질때.
{
if(b[i]=b[i+1])
{
tmd++;
if(tmdd)
d=tmd;
}else if(b[i]b[i+1]){
tmd=0;
}
}
if(ad) //그렇게나온 값 a와 b를 비교하는거죠.
fprintf(out,%d,a);
else if(da)
fprintf(out,%d,d);
return 0;
}
이렇게 해봤는데.. 흐음 .. 값보다 -1작게 나오길래 ..
나중에 각각 +1 증가시켜놓으면 되겠구나..라고 생각하고 했거든요-_-;
근데
11
1 5 3 6 4 7 1 3 2 9 5
이부분에서 값이 2로 나오고 ..ㅋ
1
0
이걸로 테스트 할려고값을 줘 봤는데1로 나오니 .. 1 올리면 3이랑 2가 되잖나요 ㅠㅠ;
에효 막막한듯 ..☆
예선 합격해서 본선준비하는데 1~2개월밖에 안됫심 ㅠ..
실력이 없어서 그런거니 소스가 지저분해두 양해쯤 ㅎ;;
-
연연두
#includestdio.h
FILE *in=fopen(\input.txt\ -
별하
파일을 열 때는 함수 내부에서 여세요.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2704529 | 메모리 동적 할당 관련해서 질문 있습니다~ | 궁수자리 | 2025-08-11 |
2704497 | int double char 같은것좀 좀만 더 가르쳐 주세요 (6) | 로지 | 2025-08-10 |
2704473 | 구조체 배열 초기화 질문 | 꽃은별 | 2025-08-10 |
2704445 | 배열과 조건문에 관한질문 (3) | 찬솔큰 | 2025-08-10 |
2704417 | 이진 트리 깊이 값 구하는것 질문입니다. | 푸른잎 | 2025-08-10 |
2704391 | 자료 유형에 관련된 문제입니다. (2) | 늘솜 | 2025-08-09 |
2704365 | c언어 문제안되서물어봅니다 (3) | 맑은가람 | 2025-08-09 |
2704338 | 다항식의 뺄셈에 대해 질문드립니다... (1) | 여자 | 2025-08-09 |
2704311 | 센서를 이용한 라인 주행인데 명령어좀 알려주세요 ㅠ_ㅠ (3) | 초록이 | 2025-08-09 |
2704284 | 배열for문;; (3) | 은솜 | 2025-08-08 |
2704255 | readline(int fd, char *buf, int nbytes)함수를 구현하는법좀..ㅠㅠ | 파라나 | 2025-08-08 |
2704196 | 간단한 c언어좀 만들어주세요 (2) | 슬S2아 | 2025-08-08 |
2704118 | 성적에서 등수 구하기 (4) | 딥레드 | 2025-08-07 |
2704062 | 알고리즘 알려주세요 | 나리 | 2025-08-06 |
2704035 | 답은 나오는데 과정에서 `` 약간 이상합니다.ㅎㅎ 답만나와버려요 | 핫블랙 | 2025-08-06 |
2703979 | 문자열 EEPROM 작성 방법 문의드립니다. | 그녀는귀여웠다 | 2025-08-06 |
2703954 | 키보드를 입력하면 캐릭터를 움직이기 질문 (7) | 좋아해 | 2025-08-05 |
2703924 | 계속 에러가... (4) | 눈꽃 | 2025-08-05 |
2703897 | 배열의 최댓값과 최솟값 차이 구하기 (1) | 하늬 | 2025-08-05 |
2703869 | C언어 질문입니다 급해용!!! ㅠㅠ (2) | 덕이 | 2025-08-05 |