2014년 7월 7일 월요일

2921 도미노

크기가 n인 도미노세트에 찍힌 점의 총 갯수를 구하는 문제이다.
이 문제는 케이스를 살펴보면 공식을 유추할 수 있다.
n    답
0 -  0
1 -  3
2 -  12
3 -  30
4 -  60

여기서 크기가 n 인 도미노의 점은 n-1 일때의 점의 갯수를 포함하기 때문에  점화식의 형태를 떠올릴 수 있다.
f(n) = f(n-1) + ~

이식에 2를 대입해보면
f(2) = f(1) + 9 = 12

이 된다. 이 9의 값은 어떻게 나왔는지를 유추해보자.

f(1)에서 이미 점이 1개만 찍힌 경우가 나왔으므로 나머지는 한쪽에 점이 2개 찍힌경우이다.
즉, (2,0), (2,1), (2,2) 의 돌이 남게된다.
이것들을 나눠서 계산해보면
2 * 3 + (0+1+2) = 9 가 된다.

이제 f(n) 으로 생각해보면
f(n) = f(n-1) + n*(n+1) + n*(n+1)/2 = f(n-1) + n*(n+1)*3/2
의 점화식이 완성된다.

따라서 f(1)부터시작해서 쌓아 올라가면 f(n)을 구할 수 있다.

물론 이 점화식을 f(n) = ~ 꼴로 바꿀 수 도 있다.
이걸 구하는 공식은 잊어버렸으나(..)
대충 테스트하니까 다음과 같은 공식임을 발견했다.
f(n) = n*(n+1)*(n+2)/2

역시 수학은 잘하고 봐야한다..

소스


댓글 없음:

댓글 쓰기