소문자 26개 중에 무작위로 k 개를 선택하는 모든 경우를 조사하는 방법밖에 없다.
k 개를 가르칠 때까지, 다음과 같이 Backtracking을 하여 최대를 구한다.
k 개에 도달했을 때, 다음과 같이 읽을 수 있는 단어를 계산하여 return 한다.
count += (각 단어|flags) == flags
이때, flags는 int에 저장. (32bits이므로, 26가지 글자를 표현 가능)
시간 복잡도는 O( c(26,k) ) 이다.
a, n, t, i, c은 필수적으로 있어야 한다.
이것을 미리 넣어두면 경우의 수를 많이 줄일 수 있는데, 결과에서도 확인할 수 있다.