happyso
study with happyso
happyso
전체 방문자
오늘
어제
  • 분류 전체보기 (302)
    • GIT (3)
    • 컴퓨터 기본 개념 (29)
    • 알고리즘 (125)
      • 알고리즘 문제 (115)
      • 알고리즘 개념 (10)
    • Go (2)
    • 클라우드 (54)
      • DevOps (4)
      • Kubernetes(쿠버네티스) (33)
      • AWS (6)
      • CKA (8)
    • 리눅스(Linux) (18)
      • 컨테이너(Container) (8)
    • Front (22)
      • JavaScript (2)
      • React (20)
    • Python (21)
      • Python 웹 크롤링 (11)
      • Django (7)
      • MachineLearning (3)
    • 데이터베이스 (6)
      • MariaDB (2)
      • MongoDB (4)
    • C언어 (5)
    • Trouble Shooting (2)
    • 네트워크 (8)
      • CCNA (5)
    • 보안 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • replace
  • 18
  • edit
  • apply
  • kubernetes
  • Patch
  • 15

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
happyso

study with happyso

[python] 백준 > DP > 연속합(1912)
알고리즘/알고리즘 문제

[python] 백준 > DP > 연속합(1912)

2021. 2. 9. 13:13

[문제]

n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다.

예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는 수열이 주어졌다고 하자. 여기서 정답은 12+21인 33이 정답이 된다.

 

입력

첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다.

출력

첫째 줄에 답을 출력한다.

 

www.acmicpc.net/problem/1912

 

1912번: 연속합

첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다.

www.acmicpc.net

[풀이]

n = int(input())
dp = list(map(int, input().split()))

for i in range(1, n):
    dp[i] = max(dp[i-1]+dp[i], dp[i])
print(max(dp))
  • 모르겠어서 찾아보고 이해했다.
  • 나의 위치 기준 현재값+이전값 과 현재값을 비교하여 더 큰 값을 다시 dp배열에 넣어준다.
  • 반복문이 끝난 뒤 dp에서 최댓값을 출력하면 된다.
  • 점화식을 생각해내는게 아직은 너무 어렵다. ㅜㅜ

[다른 사람의 풀이]

import sys
input = sys.stdin.readline
n = int(input())
A = list(map(int, input().split()))
dp = [0]*n
dp[0] = A[0]
for i in range(1, n):
    dp[i] = max(dp[i-1]+A[i], A[i])
print(max(dp))

'알고리즘 > 알고리즘 문제' 카테고리의 다른 글

[python] 백준 > BFS > Puyo Puyo(11559)  (0) 2021.02.11
[python] 백준 > DP > 포도주 시식  (0) 2021.02.09
[python] 백준 > 정렬 > 단어정렬(1181)  (0) 2021.02.08
[python] 백준 > 이분 탐색 > 숫자 카드(10815)  (0) 2021.02.04
[python] 백준 > 이분 탐색 > 두 용액(2470)  (2) 2021.02.04
    '알고리즘/알고리즘 문제' 카테고리의 다른 글
    • [python] 백준 > BFS > Puyo Puyo(11559)
    • [python] 백준 > DP > 포도주 시식
    • [python] 백준 > 정렬 > 단어정렬(1181)
    • [python] 백준 > 이분 탐색 > 숫자 카드(10815)
    happyso
    happyso

    티스토리툴바