Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Jun 26, 2025

🧷 문제 링크

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

🧭 풀이 시간

30분

👀 체감 난이도

✏️ 문제 설명

N개의 수록곡 각각의 시간은 A[i]이다.
세 종류의 쿼리를 처리해보자.

  1. j번 곡의 시간을 v로 변경한다.
  2. 시간 T 내에 재생할 수 있는 곡의 최대 수를 구한다. (중복 X)
  3. 시간이 v인 곡을 추가한다.

🔍 풀이 방법

  • 세그먼트 트리

카운팅 배열을 떠올리면 된다.
세그먼트 트리의 말단 노드에는 해당 수가 몇 개 들어있는지 + 그 수의 합을 저장해놓는다.
2번 쿼리에서 곡의 최대 개수를 구할 때는 재귀적으로 시간이 작은 곡부터 처리하는 방식으로 구할 수 있다.

⏳ 회고

구현이 은근 헷갈림 + 시간이 같은 곡이 여러 개 있는 경우의 처리가 생각보다 쉽지 않음

@oncsr oncsr self-assigned this Jun 26, 2025
@oncsr oncsr added the success 👍 해설을 보지 않고 풀었을 때 label Jun 26, 2025
@ShinHeeEul ShinHeeEul merged commit 400b7ad into main Jun 26, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

success 👍 해설을 보지 않고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants