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

CodeAngie

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

CodeAngie

검색하기 폼
  • 전체보기 (162)
    • Study (148)
      • Algorithm (8)
      • Coding Test (50)
      • Java (5)
      • FastAPI (2)
      • Docker (8)
      • FastCampus (42)
      • Codetree (9)
      • Ect (23)
    • ML (9)
      • Transformer (5)
      • RecSys (0)
      • Ect (4)

1965 (1)
[백준 BOJ / Python] 1965번 상자넣기 DP

문제 상자의 크기가 입력된 배열이 주어졌을 때, 앞에서부터 작은 상자를 뒤의 큰 상자에 넣는다면 최대 몇 개의 상자를 겹칠 수 있는지 개수를 묻는 문제이다. 풀이 왼쪽의 작은 상자를 오른쪽의 큰 상자에 넣는다는 것은 오른쪽으로 이동하면서 오름차순으로 증가하는 상자를 골라야 한다고 말할 수 있다. 즉, 상자배열 내에서 가장 긴 증가하는 부분 수열 (LIS) 을 구한다면, 겹칠 수 있는 최대 상자의 개수를 알 수 있다. 알고리즘 겹치는 상자의 개수를 담는 dp 를 1로 초기화한다. 상자의 크기가 담긴 box 배열을 순회한다. 해당 상자의 이전에 있는 상자들과 비교하면서 담을 수 있는 상자라면, 이전 상자에 담기는 상자의 개수(dp[j])에 1을 더한 값과 현재 dp[i]에 담긴 값을 비교하여 더 큰 값을 d..

Study/Coding Test 2023. 2. 6.
이전 1 다음
이전 다음
«   2025/12   »
일 월 화 수 목 금 토
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
TAG
  • python
  • 알고리즘
  • BFS
  • 오블완
  • 백준
  • 파이썬
  • 최소신장트리
  • MySQL
  • java
  • 코드트리
  • 프로그래머스
  • 분리집합
  • DP
  • dfs
  • docker
  • 티스토리챌린지
  • 구현
  • Django
  • Transformer
  • COLAB
  • 그리디
  • pytorch
  • 트랜스포머
  • 누적합
  • disjoint set
  • lis
  • greedy
  • 코딩테스트
  • boj
  • kruskal
more
링크

Blog is powered by Tistory / Designed by Tistory

티스토리툴바