이 영역을 누르면 첫 페이지로 이동
Arc 블로그의 첫 페이지로 이동

Arc

페이지 맨 위로 올라가기

Arc

[Baekjoon] 1912: 연속합

  • 2022.10.19 03:22
  • Algorithm/PS
글 작성자: SeoArc

문제

 

풀이

내 풀이

import sys
n = int(sys.stdin.readline())
arr = list(map(int, sys.stdin.readline().split()))

dp = [0] * n
dp[0] = arr[0]
for i in range(1, len(arr)):
    dp[i] = max(dp[i-1] + arr[i], arr[i])

print(max(dp))

이 문제는 단순하게 생각하여 현재까지 합들보다 현재 값이 크면 시작점을 현재 인덱스로 바꾸면 해결되는 문제이다.

이 문제에선 다음을 고려하여 풀이를 진행하면 해결법이 생각날 것이다.

  • 음수 값이 포함되어도 합이 최대 일 수 있다는 점
  • 그렇지만 음수는 합에 영향을 준다는 점 (모두 0 이상인 수라면 전체 합이 최대이다)

한 번 다음 세 케이스를 생각해보자

1) 1 2 -2 5 6

2) 1 2 -3 5 6

3) 1 2 -4 5 6

1번 케이스의 경우 모든 수의 합이 최대 값이다.

2번 케이스의 경우 모든 수의 합, (5, 6)이 최대 값이다

3번 케이스의 경우 (5, 6)이 최대 값이다.

 

위 케이스를 보면 이전까지의 합이 음수인 경우, 0인 경우, 양수인 경우를 생각하면 해답이 나온다는 것을 확인할 수 있을 것이다.

 

회고

위 문제는 단순한 DP 문제였다.

첫 날에는 해답이 보이지 않아 생각 후에 다음 날에 풀이를 해보았더니 풀렸다.

실력이 조금씩 오르는 것 같지만 당일에 바로 풀이할 수 있는 실력이 되도록 열심히 풀어야겠다.

'Algorithm > PS' 카테고리의 다른 글

[Baekjoon] 1138: 한 줄로 서기  (0) 2023.02.26
[Baekjoon] 17298: 오큰수  (0) 2022.12.06
[Baekjoon] 3190: 뱀  (0) 2022.10.23
[Baekjoon] 11054: 가장 긴 바이토닉 부분 수열  (0) 2022.10.19
[Baekjoon] 11055: 가장 큰 증가 부분 수열  (0) 2022.10.13

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [Baekjoon] 17298: 오큰수

    [Baekjoon] 17298: 오큰수

    2022.12.06
  • [Baekjoon] 3190: 뱀

    [Baekjoon] 3190: 뱀

    2022.10.23
  • [Baekjoon] 11054: 가장 긴 바이토닉 부분 수열

    [Baekjoon] 11054: 가장 긴 바이토닉 부분 수열

    2022.10.19
  • [Baekjoon] 11055: 가장 큰 증가 부분 수열

    [Baekjoon] 11055: 가장 큰 증가 부분 수열

    2022.10.13
다른 글 더 둘러보기

정보

Arc 블로그의 첫 페이지로 이동

Arc

  • Arc의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (106)
    • Language (28)
      • C++ (0)
      • C# (0)
      • Java (28)
    • Algorithm (47)
      • Algorithm (15)
      • Data Structure (6)
      • PS (26)
    • Computer Science (22)
      • Design Pattern (1)
      • Network (14)
      • OS (7)
    • Game (0)
      • Unity (0)
    • Backend (3)
      • Spring (1)
      • JPA (2)
    • DB (0)
      • SQL (0)
    • DevOps (2)
      • AWS (0)
      • Docker (2)
      • Jenkins (0)
      • Nginx (0)
    • Software Engineering (4)
      • OOP (4)
    • AI (0)
      • Machine Learning (0)
    • Others (0)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • graph
  • java
  • network
  • algorithm
  • 자바
  • 네트워크
  • 그래프
  • 알고리즘

나의 외부 링크

정보

SeoArc의 Arc

Arc

SeoArc

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © SeoArc. Designed by Fraccino.

티스토리툴바