LIS 질문입니다.

  • dbfud
    dbfud

    LIS 관련 질문입니다. 아래 소스를 보아주세요

    #include <iostream>
    using namespace std;
    
    int main() {
    
        int testCase = 0;
        int *storeNum = 0;
    
        cin >> testCase;
    
    
        for( int i = 0; i < testCase ; i++)
        {
            int Count = 1;
            int maxCount = 0;
            int nNum = 0;
            cin >> nNum ;
    
            storeNum = new int[nNum];
    
            for( int j = 0 ; j < nNum ; j++)
            {
                // 데이터를 입력받음
                cin >> storeNum[j];
            }
    
            for( int p = 0 ; p < nNum-1 ; p++)
            {
                // 증가 수열 판단하는 부분
                if ( storeNum[p] < storeNum[p+1])
                {
                    // 조건을 만족하면 늘어나는 것으로 판단..
                    Count++;
    
                    // 무조건 비교해서 함
                    if ( maxCount < Count )
                        maxCount = Count;
                }
    
                // 증가 수열이 아니라면 다시 Count를 초기화
                else
                {
                    if ( maxCount < Count )
                        maxCount = Count;
    
                    Count = 1 ;
                }
            }
    
            delete storeNum;
            storeNum = 0;
            cout << maxCount << endl;
        }
    
    
        // your code goes here
        return 0;
    }
    

    제가 수많은 테스트 케이스를 스스로 만들어서 해봐도...
    정답이 맞는 것 같은데... 왜 자꾸 오류로 뜨는지 이해가 가지
    않네요... 어떤 걸 입력하면 이 소스가 잘못되었다라는 걸
    알 수 있는지... 조금 도와주실 수 있으신가요?


    10년 전
3개의 댓글이 있습니다.
  • Being
    Being

    풀이 내용에 대한 답변은 나중에 드리겠습니다. 지금 잠깐 보기에는 new[]로 할당한 객체를 delete[]로 해제하지 않고 delete를 사용하신 게 눈에 들어옵니다. 저것 때문에 틀리지는 않을 것 같지만 저렇게 하시면 안 됩니다. C++에서 저수준의 메모리 관리는 꼭 필요한 경우가 아니라면, 그리고 잘 하실 자신이 있으신 게 아니라면 피하시는 게 좋습니다.


    10년 전 link
  • Being
    Being

    코드를 지금 살펴봤는데 문제를 잘못 이해하신 것 같습니다. 부분 수열은 연속된 부분일 필요가 없습니다. 예를 들어 3 1 4 2 5 와 같은 수열에서 답은 3이 되어야 합니다.


    10년 전 link
  • dbfud
    dbfud

    이제야 답글을 보네요 ㅠㅠ 도와주셔서 감사합니다. 제가 문제를 잘못 이해하고 있다라는 걸 알았네요 도와주셔서 감사합니다.


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