-문제: https://www.acmicpc.net/problem/14659

 

스스로 푼 문제이다. 

IndexError 해결한 과정 추가하기

6%에서 위 에러가 발생하길래 무엇이 문제인지 생각하다가 j의 upperbound를 설정안 한 것을 깨달았다.

예제에서는 j의 upperbound를 설정하지 않아도 마지막 인덱스 값이 0보다 크므로 알아서 break 하지만,

마지막 인덱스 값이 11이 아니라 10이면 IndexErrorr가 발생함을 알았다. 

그래서 if j>=n: break 문을 추가하니까 정답이 떴다. 

 

기존의 증가하는 부분 수열과는 다른 문제다. 증가하는 부분수열은 i보다 큰 j(i+1,n-1)가 있으면 카운트 하지만, 

여기서는 하나의 j라도 i보다 크면 거기서 멈춘다. 그래서 For + while 문의 형태로 진행했다. 

Pypy3으로 해야 시간초과가 안나고 정답이다. sys.stdin.readline에 python3을 해봤으나 시간초과가 떴다 

 

-정답풀이:

n=int(input())
data=list(map(int,input().split()))
sequence=[0]*n

for i in range(n):
    j=i+1    
    while True:
        
        if j>=n:
            break
        if data[j]>=data[i]:
            break
        else:
            sequence[i]+=1
        j+=1
print(max(sequence))

+ Recent posts