abcd를 입력한다 했을 때 나올 수 있는 유형은
2 * 3 * 3 * 2 = 36이다.
해당 위치에 문자 양 옆을 보고 그 위치에 올 수 있는 문자의 개수가 정해지는 것이다.
a 의 경우는 옆에 b 만 있으므로 a 또는 b 가 올 수 있어서 총 2가지가 있고,
b 의 경우는 옆에 a와 c가 있으므로 a, b 또는 c가 올 수 있어서 총 3가지가 있다.
이런 식으로 곱사건을 구하는 것이다.
처음과 끝은 스페셜 케이스로 처리하였다. 문자 두개만 비교하면 되기 때문이다.
3개의 문자를 비교해야 하는 경우는 주석을 참고하면 된다.
반복문안에서 ret 을 1 000 000 007 을 나눈 나머지로 다시 초기화 하는 것을 생각하지 못해서
여러번 fail이 떴었다.
사실 처음에는 전체 결과에서 10억 7을 나눈 나머지만 반환 하면 되는 줄 알았는데,
결과 자체가 10억 7안에 있어야 되는 모양인 것 같다.