Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Feb 11, 2025

🧷 문제 링크

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

🧭 풀이 시간

20분

👀 체감 난이도

✏️ 문제 설명

  • 선분 $N$개의 길이가 주어진다.
  • 각 선분을 최대 한 번 씩만 사용해서 $K$각형을 만드는 경우의 수를 구해보자.
  • $K$각형의 한 변에 두 개 이상의 선분을 쓸 수 없다.

🔍 풀이 방법

  • 둘레가 $s$$k$각형의 가짓수를 $dp[s][k]$라고 정의하면, $O(500000 \times s \times k)$에 구할 수 있겠다 싶어서 이대로 구현했다.

  • 길이 $a$인 선분을 추가해서 둘레 $s$$k$각형을 만드는 것은, $s>2a$를 만족할 때, $k-1$개의 선분을 골라 길이 합이 $s-a$가 되는 가짓수를 더해주는 것과 동일하다. -> 배낭 문제로 생각할 수 있다.

  • 위의 dp식 정의인 둘레가 $s$인 $k$각형의 가짓수와, $k$개의 합이 $s$가 되는 가짓수는 엄연히 다르기 때문에, $sum[s][k]$에 합의 가짓수를 따로 저장해주었다.

⏳ 회고

배낭 문제를 연습하기에 좋은 문제같다.

@oncsr oncsr added the success 👍 해설을 보지 않고 풀었을 때 label Feb 11, 2025
@ShinHeeEul
Copy link
Contributor

ShinHeeEul commented Feb 11, 2025

@oncsr 현재 날짜 기준으로 자동 PR이 진행됩니다! 오늘 날짜로 제목 수정해주세요 :)

@oncsr oncsr changed the title [20250210] BOJ / 플래3 / 도형 / 권혁준 [20250211] BOJ / 플래3 / 도형 / 권혁준 Feb 11, 2025
@ShinHeeEul ShinHeeEul merged commit dbdc950 into main Feb 11, 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