Notice
Recent Posts
Recent Comments
Tags
- 바닥장식 파이썬
- 백준 바닥장식 python
- 프로그래머스 레벨1
- 스프링 초보
- 코딩테스트
- 코테 연습
- 백준 다이나믹프로그래밍
- programmers
- 프로그래머스 고득점 kit
- 장고
- 프로그래머스 전화번호 목록 python
- 백준 dp
- 스프링 기초
- 백준
- 전화번호 목록 python
- Django 기초
- Spring 초보
- Django
- 장고 기초
- 프로그래머스
- 코테
- dp 알고리즘
- 프로그래머스 level1
- spring 기초
- 프로그래머스 레벨2
- 프로그래머스 알고리즘 고득점 kit
- 알고리즘 공부
- 알고리즘 문제
- 프로그래머스 전화번호 목록 파이썬
- 코딩테스트 연습
Archives
- Today
- Total
일일구름 IT
[백준 1912] 연속합 (Python) 본문
https://www.acmicpc.net/problem/1912
[문제]
[틀린 코드]
n = int(input())
num = list(map(int, input().split()))
arr = []
for i in range(1, n):
for j in range(0, n-i):
arr.append(sum(num[j:(j+i)]))
print(max(arr))
처음에는 리스트 슬라이싱을 이용해서 모든 경우를 구한 뒤 가장 합이 큰 경우를 출력하였다.
이렇게 문제를 푸니 테스트케이스는 맞지만 시간초과로 틀렸다.
그래서 다른 사람의 코드를 참고하여 풀게되었다.
[맞은 코드]
n = int(input())
num = list(map(int, input().split()))
for i in range(1, n):
num[i] = max(num[i-1]+num[i], num[i])
print(max(num))
전형적인 DP 알고리즘 코드였다.
앞의 수와 더한 값과 더하지 않은 값 중 더 큰 값을 저장하고 이를 계속 하면 결과가 누적되어 최종 결괏값을 알 수 있다.
'백준 > 다이나믹 프로그래밍' 카테고리의 다른 글
[백준 2294] 동전2 (Python) (0) | 2023.05.08 |
---|---|
[백준 2293] 코인1 (Python) (0) | 2023.05.08 |
[백준 1932] 정수 삼각형 (Python) (0) | 2023.03.23 |