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

쿄코코

페이지 맨 위로 올라가기

쿄코코

얼레벌레 생활🤯

99클럽 코테 스터디 28일차 TIL - DP(백준11055-가장 큰 증가하는 부분 수열 )

  • 2024.11.24 22:22
  • Python/😈 99클럽 코테 스터디 4기 TIL
    반응형

    https://www.acmicpc.net/problem/11055

    • 오늘의 학습 키워드 : DP
    • 공부한 내용

    예시로

    작동 과정 예시 (입력: 10, [1, 100, 2, 50, 60, 3, 5, 6, 7, 8])

    • 초기 dp = [1, 100, 2, 50, 60, 3, 5, 6, 7, 8]
    • 루프 동작:
      • i=1: dp[1] = max(dp[1], dp[0] + A[1]) → 101
      • i=3: dp[3] = max(dp[3], dp[0] + A[3], dp[2] + A[3]) → 51
      • ...
      • i=9: dp[9] = max(dp[9], dp[6] + A[9], ..., dp[8] + A[9]) → 113
    • 최종 dp = [1, 101, 2, 51, 111, 6, 11, 17, 24, 113]
    • 결과: max(dp) = 113
    1. dp[i]는 i번째 요소로 끝나는 최대 합을 저장한다.
    2. A[j] < A[i] 조건을 확인하며 이전 값들의 최대 합을 재활용한다.
    3. 모든 요소를 처리한 후, max(dp)로 결과를 구한다.

     

    🎯 DP 풀이

    import sys
    
    # 입력 받기: 수열의 길이 N과 수열 A
    N = int(sys.stdin.readline().strip())  # 수열의 길이
    A = list(map(int, sys.stdin.readline().strip().split()))  # 수열
    
    # dp 배열 초기화: dp[i]는 A[i]를 마지막으로 하는 최대 합 증가 부분 수열의 합
    dp = A.copy()  # 각 요소는 초기값으로 자기 자신을 포함한 부분 수열의 합
    
    # 반복문을 통해 dp 배열 계산
    for i in range(1, N):  # i는 현재 위치 (A[i]를 마지막으로 고려)
        for j in range(i):  # j는 i 이전의 모든 위치를 탐색
            if A[j] < A[i]:  # 증가 조건: A[j]가 A[i]보다 작아야 증가 수열
                # dp[i]를 갱신: 이전 최대 합(dp[j])에 A[i]를 추가한 값과 기존 dp[i] 중 큰 값 선택
                dp[i] = max(dp[i], dp[j] + A[i])
    
    # dp 배열에서 가장 큰 값이 답: 최대 합 증가 부분 수열의 합
    print(max(dp))

     

    • 오늘의 공부 회고
      • dp는 아직까지는 풀수 있을정도..? 실버정도는 그래도 풀수있을것 같다..
    반응형

    'Python > 😈 99클럽 코테 스터디 4기 TIL' 카테고리의 다른 글

    99클럽 코테 스터디 29일차 TIL - DP(백준9461-파도반 수열 )  (0) 2024.11.25
    99클럽 코테 스터디 27일차 TIL - DP(백준11722-가장 긴 감소하는 부분 수열 )  (0) 2024.11.23
    99클럽 코테 스터디 26일차 TIL - DP(백준-전력망을 둘로 나누기)  (0) 2024.11.22
    99클럽 코테 스터디 24일차 TIL - 완전탐색(프로그래머스-전력망을 둘로 나누기)  (0) 2024.11.20
    99클럽 코테 스터디 23일차 TIL - 완전탐색(프로그래머스- 소수찾기)  (0) 2024.11.20

    댓글

    이 글 공유하기

    • 구독하기

      구독하기

    • 카카오톡

      카카오톡

    • 라인

      라인

    • 트위터

      트위터

    • Facebook

      Facebook

    • 카카오스토리

      카카오스토리

    • 밴드

      밴드

    • 네이버 블로그

      네이버 블로그

    • Pocket

      Pocket

    • Evernote

      Evernote

    다른 글

    • 99클럽 코테 스터디 29일차 TIL - DP(백준9461-파도반 수열 )

      99클럽 코테 스터디 29일차 TIL - DP(백준9461-파도반 수열 )

      2024.11.25
    • 99클럽 코테 스터디 27일차 TIL - DP(백준11722-가장 긴 감소하는 부분 수열 )

      99클럽 코테 스터디 27일차 TIL - DP(백준11722-가장 긴 감소하는 부분 수열 )

      2024.11.23
    • 99클럽 코테 스터디 26일차 TIL - DP(백준-전력망을 둘로 나누기)

      99클럽 코테 스터디 26일차 TIL - DP(백준-전력망을 둘로 나누기)

      2024.11.22
    • 99클럽 코테 스터디 24일차 TIL - 완전탐색(프로그래머스-전력망을 둘로 나누기)

      99클럽 코테 스터디 24일차 TIL - 완전탐색(프로그래머스-전력망을 둘로 나누기)

      2024.11.20
    다른 글 더 둘러보기

    정보

    쿄코코 블로그의 첫 페이지로 이동

    쿄코코

    • 쿄코코의 첫 페이지로 이동

    검색

    메뉴

    • 홈

    카테고리

    • 분류 전체보기 (168)
      • Python (24)
        • 😈 99클럽 코테 스터디 4기 TIL (23)
        • 궁금한거 정리 (1)
      • SQL (16)
        • HackerRank (15)
      • [백준] Python,Java로 풀기📖 (71)
        • 정렬(Sorting) (6)
        • 그리디 (5)
        • 문자열 (7)
        • 수학 (3)
        • DFS&BFS (10)
        • 구현 (4)
        • 다이나믹 (17)
        • 이분탐색 (1)
        • 자료구조 (10)
        • 최단거리 (5)
        • 인덱스트리 (0)
      • [프로그래머스]Python,Java로 풀기 (6)
        • Level 1 (4)
        • Level 2 (2)
      • Study Platform📚 (25)
        • (운영체제) - 블로그 및 강의 참고 (0)
        • 김영한👨🏻‍🏫의 스프링 부트와 JPA 실무 완전 .. (5)
        • (알고리즘)- [이코테] 이것이 코딩테스트다 정리 (10)
        • 그림으로 배우는 Http&Network Basic (10)
      • 까먹을까봐 적는 것들 (4)
      • 테스트 보고 난 후..🤔 (0)
      • kt 에이블스쿨 (18)

    최근 글

    인기 글

    댓글

    공지사항

    아카이브

    태그

    • 프로그래머스
    • 항해99
    • 99클럽
    • TiL
    • 코딩테스트준비
    • 백준
    • 오블완
    • 티스토리챌린지

    나의 외부 링크

    정보

    쿄코코의 쿄코코

    쿄코코

    쿄코코

    블로그 구독하기

    • 구독하기
    • RSS 피드

    방문자

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

    티스토리

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

    티스토리툴바