백준 1912는 판단할 값을 입력 배열과 index를 맞춘 배열로 저장해서 해결한다. 참고 링크
방식은 같은데 속도가 더 빠른 풀이를 발견했다. 변수를 하나 없앴고 배열을 초기화하는 방법이 다르다. 참고 링크
성공한 방법
import sys
n = int(sys.stdin.readline())
inputArr = list(map(int, sys.stdin.readline().split(' ')))
temp = [0 for _ in range(n)]
maxVal = -1001
for i in range(n):
temp[i] = max(temp[i-1]+inputArr[i], inputArr[i])
maxVal = max(maxVal, temp[i])
print(maxVal)
실패한 방법
시간 초과 - O(n^2) 참고 링크
import sys
n = int(sys.stdin.readline()) # 수열의 원소 개수
inputArr = list(map(int, sys.stdin.readline().split(' ')))
def checkSum(num):
tempSum = inputArr[num]
tempArr = []
tempArr.append(tempSum)
for i in range(num+1, n):
tempSum += inputArr[i]
tempArr.append(tempSum)
return max(tempArr)
sumArr = [checkSum(i) for i in range(n)]
print(max(sumArr))
'Algorithm' 카테고리의 다른 글
[DP] boj 11053, 11054, 11055, 11722 - 가장 긴 증가하는 부분 수열(LIS) (0) | 2021.01.01 |
---|---|
[DP] boj 11726, 11727 - 2xn 타일링 (0) | 2021.01.01 |
[DP] boj 9095, 9461 - 간단한 점화식 (0) | 2021.01.01 |
[DP] boj 1463 - 1로 만들기 (0) | 2021.01.01 |
[입출력] boj 11718, 11719 - EOF 판단 (0) | 2020.12.30 |