-문제: 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))
'백준 > Greedy' 카테고리의 다른 글
[그리디/백준] 9576번: 책 나눠주기 (0) | 2022.07.14 |
---|---|
[그리디/백준] 12904번: A와 B (0) | 2022.07.13 |
[그리디/백준] 1041번: 주사위 (0) | 2022.07.11 |
[그리디/백준] 15904번: UCPC는 무엇의 약자일까? (0) | 2022.07.11 |
[그리디/백준] 2212번: 센서 (0) | 2022.07.11 |