LIS 문제 질문있습니다..

  • User Avatar
    furyhunter

    [[problem: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--;
        }
    }
    


    10년 전
2개의 댓글이 있습니다.
  • User Avatar
    장홍준

    수열이 1 3 2 4 일 경우 LIS는 1 3 4로 답의 길이가 3이 될텐데, 답의 길이로 2를 출력하시는 것 같습니다.


    10년 전 link
  • User Avatar
    furyhunter

    아..!
    문제를 제대로 안읽은것같네요.. ㅋㅋ

    감사합니다!


    10년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.