-
[백준 14556] Balance코딩 2022. 9. 7. 22:54728x90
https://www.acmicpc.net/problem/14556
이 문제를 읽고 생각한 뒤, 처음 생각한 점화식은 이거였다.
점화식: (n번째 추를 먼저 놓는다 가정했을 때)
f(n)=n∑i=1{n−1Pi−12i−1f(n−i)},f(1)=1 근데 이 풀이는 시간 초과가 났다. 가만 생각해 보니
이어서 시간이 상당히 오래 걸렸다.O(n3) 살짝 발상을 바꾼 점화식) i번째 추를 마지막에 놓는다 생각한다면, n번째 추는 놓을 곳이 1군데밖에 없으므로
, i번째 추는 놓을 곳이 2군데이므로f(n−1) ,2f(n−1)
이를 까지 전부 더하면1...n 이f(n−1) 개 있게 되므로,(2n−1) f(n)=(2n−1)f(n−1),f(1)=1
과도 나타낼 수 있다.다른 말로 하자면
까지의 홀수를 다 곱한 것이다1,3,5,...2n−1
f(n)=n∏i=1(2i−1) 또는
f(n)=(2n)!n!2n 이 3개의 식은 모두 같은 뜻이며
에 동작한다.O(n) 생각의 순서만 바뀌었는데 풀이가 완전히 달라지는 게 개인적으로 재밌었던 문제였다.
728x90'코딩' 카테고리의 다른 글
[백준 11051] 이항 계수2 (0) 2022.12.03 [백준 1413] 박스 안의 열쇠 (0) 2022.09.25 [백준 16565] N포커 (1) 2022.09.04 [백준 25380] 커다란 도시(2022 정보 올림피아드 예선 중2) (1) 2022.09.04 첫 글 (0) 2022.08.28