Skip to content

Conversation

@0224LJH
Copy link
Contributor

@0224LJH 0224LJH commented Nov 25, 2025

🧷 문제 링크

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

🧭 풀이 시간

90분

👀 체감 난이도

✏️ 문제 설명

수빈이는 BOJ 알고리즘 캠프에서 음악을 들으면서 문제를 풀고 있다. 지금 수빈이의 스마트폰에는 N개의 노래가 저장되어 있다. 오늘 수빈이는 P개의 노래를 들으려고 한다. 수빈이는 다음과 같은 조건을 만족하는 플레이리스트를 만들려고 한다. 플레이리스트에는 같은 노래를 여러 번 추가해도 된다.

모든 노래를 플레이리스트에 추가해야 한다.
같은 노래를 추가하려면, 플레이리스트에서 두 노래 사이에 적어도 M개의 곡이 있어야 한다.
수빈이는 플레이리스트를 만들 수 있는 경우의 수가 궁금해졌다. N, M, P가 주어졌을 때, 수빈이가 만들 수 있는 플레이리스트의 경우의 수를 구하는 프로그램을 작성하시오.

🔍 풀이 방법

딱 보자마자 dp인 것은 알았지만, 로직을 찾아내는데 한참 걸렸다.

우선 노래마다 차이점이 존재하는 것이 아니고, 결국 모든 노래를 한 번씩은 사용해야하기에,
dp[i][j]: i번째자리까지 j개의 숫자로 채우는 경우의 수

이렇게 지정하고 접근하였다.
이때 간격만큼의 부분배열에는 겹치는게 없다는 것을 이용하였다.

⏳ 회고

@ShinHeeEul ShinHeeEul merged commit cd44ef3 into main Nov 25, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants