LIS 문제 질문있습니다..

  • furyhunter
    furyhunter

    LIS 문제입니다.

    순증가 수열을 햇구해서.. 그 갯수를 한표시하는 문제인데 아래는 제가 간단히 작성한 코드입니다.

    혹시 문제점이나 문제가 될만한 케이스가 보이신다면 알려주시시면 감사하겠습니다..

    #include <stdio.h>
    
    #pragma warning(disable:4996)
    
    int main(void)
    {
        int C;      //Test Case
        int N;      //수열 원소의 수
        int i;      //index
        int Arr[500] = { 0 };       //배열
        int count;  //순증가수열의 수
        int max;    //가장 큰 LIS
    
        scanf("%d", &C);    //Test Case 입력
    
        while (C > 0)
        {
            count = 1;
            max = 1;
    
            scanf("%d", &N);    //원소 수 입력
    
            for (i = 0; i < N; i++)
                scanf("%d", &Arr[i]);   //Arr 배열에 숫자가 입력이 됨(수열 완성)
    
            //수열 전체적으로 증가하는지를 검사
            //수열의 현재 원소와 이전 원소를 비교하여 크면 count 증가, max와 비교하여 max 갱신
            //작아지면 count = 1로 초기화
            //max를 return
    
            for (i = 0; i < N - 1; i++)
            {
                if (Arr[i] < Arr[i + 1])
                {
                    count++;
    
                    if (max < count)
                        max = count;
                }
                else
                    count = 1;
            }
    
            printf("%d\n", max);
    
            C--;
        }
    }
    


8년 전