본문 바로가기 메뉴 바로가기

dev.notes

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

dev.notes

검색하기 폼
  • 분류 전체보기 (24)
    • java & spring (2)
    • CS (0)
      • 운영체제 (0)
    • Tech (2)
    • 인프라 (0)
    • 알고리즘 (18)
      • 브루트포스 (7)
      • 해시 테이블 (1)
      • 그리디 (3)
      • dfs (1)
      • 재귀 (1)
      • 시뮬레이션 (2)
      • 그래프 (1)
      • union-find (1)
      • 다이나믹 프로그래밍 (1)
    • 졸업과제 (1)
      • YOLO (1)
    • 기타 (1)
  • 방명록

lis (1)
[Java] 가장 긴 증가하는 부분 수열 4

https://www.acmicpc.net/problem/14002해결 방법사용한 알고리즘: DP접근 방법:테이블 정의: d[i]: 첫 시작 원소부터 i번째 원소까지 고려했을 때, 가장 긴 증가하는 수열의 길이점화식:i번째 원소를 포함하지 않을 경우: d[i] = d[i-1]i번째 원소를 포함하는 경우(if 조건을 만족할 경우): for j if(aj d[i] = d[j]+1i번째 원소를 포함할 경우, i보다 작은 j에 대해 가장 긴 증가하는 수열의 길이 + 1을 하여 현재 i번째 가장 긴 증가하는 수열의 길이(d[i])와 비교하여 최대값으로 업데이트 한다.추가적으로 길이뿐만 아니라, 가장 긴 증가하는 부분 수열을 출력해야 한다. 이를 위해 역추적 배열을 썼다.for j if(aj  이 과정에서 if..

알고리즘/다이나믹 프로그래밍 2024. 9. 17. 20:31
이전 1 다음
이전 다음
공지사항
  • velog에서 tistory로 이동
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

Blog is powered by Tistory / Designed by Tistory

티스토리툴바