문제
https://www.acmicpc.net/problem/2491
2491번: 수열
0에서부터 9까지의 숫자로 이루어진 N개의 숫자가 나열된 수열이 있다. 그 수열 안에서 연속해서 커지거나(같은 것 포함), 혹은 연속해서 작아지는(같은 것 포함) 수열 중 가장 길이가 긴 것을 찾
www.acmicpc.net
제출한 풀이
n = int(input())
num_list = list(map(int,input().split()))
result = 1
increase_temp = 1
decrease_temp = 1
for i in range(0, n-1):
if num_list[i] <= num_list[i+1]:
increase_temp += 1
if increase_temp > result:
result = increase_temp
else:
result
else:
increase_temp = 1
for j in range(0, n-1):
if num_list[j] >= num_list[j+1]:
decrease_temp += 1
if decrease_temp > result:
result = decrease_temp
else:
result
else:
decrease_temp = 1
print(result)
실행시간: 136ms
코드는 짧지만 시간이 걸리는 풀이
n=int(input())
arr=list(map(int, input().split()))
dp=[[1]*n for _ in range(2)]
for i in range(1,n):
if arr[i]>=arr[i-1]:
dp[0][i]=max(dp[0][i], dp[0][i-1]+1)
if arr[i]<=arr[i-1]:
dp[1][i]=max(dp[1][i], dp[1][i-1]+1)
print(max(max(dp[0]), max(dp[1])))
실행시간: 192ms
'Problem Solving > CT-Python' 카테고리의 다른 글
[백준/누적합] 11659: 구간 합 구하기 - 파이썬 (0) | 2022.05.13 |
---|---|
[백준/구현] 2304: 창고 다각형 - 파이썬 (0) | 2022.05.13 |
[SWEA/구현] 2007: 패턴 마디의 길이 - 파이썬 (0) | 2022.05.04 |
[백준/DFS-BFS] 2606: 바이러스 - 파이썬 (0) | 2022.05.04 |
[구름LEVEL1/수학] 태민이의 취미 - 파이썬 (0) | 2022.05.04 |