Skip to content

Conversation

@LiiNi-coder
Copy link
Contributor

🧷 문제 링크

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

🧭 풀이 시간

40 분

👀 체감 난이도

✏️ 문제 설명

  • 어떤 수열이 주어지고, 이 수열의 맨 끝의 두 숫자 사이에 = 이 들어가고, 나머지 숫자 사이에 + 아니면 - 를 넣어 등식이 성립되는 경우의 수 전부출력. 단, 도중의 연산 결과는 0이상 20이하인것들만 경우의 수로 셈

🔍 풀이 방법

  • dp를 이용하였고, 탑다운 방식으로 적용
예를 들어서 
8 3 2 4 8 7 2 4 0 8 8 이렇게 입력이 주어지면, 0번째부터 10번째까지의 결과 값이 a[10] + a[9]인 16일수도 있고,
a[10]-a[9]인 0 일수있고, 이를 또 구하기 위해서 0번째부터 9번쨰까지의 결과 값이 16 + a[8]일수있고, 16 - a[8] 일수있고..

⏳ 회고

  • 아직 dp에 익숙하지않아, 탑다운으로 밖에 풀이 방법이 들지않았다. 그리고 dfs로 진행하다 이전에 계산한 결과를 표현하기 위해 dp[index][sum]을 사용하여 더이상 dfs가 가지치기하지않도록 한다는 것을 염두하자

@LiiNi-coder LiiNi-coder added the hint 💡 반례를 참고했거나 힌트를 얻고 풀었을 때 label Aug 2, 2025
@ShinHeeEul ShinHeeEul merged commit a47a785 into main Aug 2, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hint 💡 반례를 참고했거나 힌트를 얻고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants