[Codility] Lesson8. MaxDoubleSliceSum (Python)

2021. 5. 17. 21:25·코딩 테스트
728x90

1. 문제

https://app.codility.com/c/run/training7WK46H-9HS/

 

Codility

Your browser is not supported You should use a supported browser. Read more

app.codility.com

2.풀이

처음에 combination으로 만들수있는 인덱스(3개) 조합을 구하고 그 인덱스에 해당하는 합계를 구하니 시간초과가 났다  ㅜ,ㅜ

시간초과 해결 방법이 생각안나서 구글링으로 결국 해결,,,

전형적인 dp 알고리즘을 사용해서 풀어야하는 문제였다.

왼쪽-> 오른쪽 방향으로 배열의 누적 합을 미리 저장했었는데 왼쪽 <- 오른쪽 방향으로의 누적 합도 미리 저장해야하는 것이 포인트였다.

 

3. 코드

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A):
    left_max_sum =[0] * len(A)
    right_max_sum = [0] * len(A)

    for i in range(1, len(A)-2):
        left_max_sum[i] = max(left_max_sum[i-1]+A[i], 0)
    for i in range(len(A)-2, 1, -1):
        right_max_sum[i] = max(right_max_sum[i+1]+A[i], 0)

    max_sum = left_max_sum[0] + right_max_sum[2] #(0,1,2)

    for i in range(1, len(A)-1):
        max_sum = max(max_sum, left_max_sum[i-1] + right_max_sum[i+1])
    return max_sum

 

728x90

'코딩 테스트' 카테고리의 다른 글

[Codility] Lesson12. Chocolatesbynumber (python)  (0) 2021.05.24
[Codility] Lesson9. MaxSliceSum (Python)  (0) 2021.05.21
[Codility] Lesson5. PassingCars (Python)  (0) 2021.05.11
[Codility] Lesson5.MinAvgTwoSlice (Python)  (0) 2021.05.11
[Codility] Lesson5.Genomicrangequery (Python)  (0) 2021.05.11
'코딩 테스트' 카테고리의 다른 글
  • [Codility] Lesson12. Chocolatesbynumber (python)
  • [Codility] Lesson9. MaxSliceSum (Python)
  • [Codility] Lesson5. PassingCars (Python)
  • [Codility] Lesson5.MinAvgTwoSlice (Python)
zoodi
zoodi
IT/개발 관련 지식을 기록하는 블로그입니다.
  • zoodi
    오늘의 기록
    zoodi
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 후기
        • 컨퍼런스
        • 일상리뷰
      • 금융경제
        • 뉴스
        • 금융IT용어
        • 경제 및 부동산
      • 코딩 테스트
      • 스터디
        • JAVA
        • Kotlin
        • Spring
        • React, Nextjs
        • 인공지능 AI
        • Cloud & k8s
        • Kafka
        • Database
        • Network
        • Algorithm
        • Hadoop
        • LINUX
        • R Programming
        • 기타 (소공, 보안)
      • 도서
      • 기타
  • 블로그 메뉴

    • 홈
    • 스터디
    • 금융경제
    • 후기
    • 기타
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    스프링
    CodingTest
    Python
    LeetCode
    codility
    네트워크
    MySQL
    db
    금융용어
    Spring
    java
    카카오코테
    쿠버네티스
    리트코드
    코테공부
    코딩테스트
    Kotlin
    이분탐색
    kafka
    pythoncodingtest
    알고리즘
    코딜리티
    C++
    springboot
    코테
    코딩
    자료구조
    자바
    스프링부트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
zoodi
[Codility] Lesson8. MaxDoubleSliceSum (Python)
상단으로

티스토리툴바