주어진 문자열로 구성될수 있는 중복되지 않는 조합의 갯수를 돌려주는 문제.
수 계산은 순열이나 조합계산으로 빠르게 될것같다는 생각이 들지만 구현해야하는 방법에 대해 좋은 생각이 떠오르지 않는다.
해서 가능한 조합을 직접 구성하는 방식을 취하였다.
우선 입력된 문자열을 문자에 따라 객체화(db)를 진행한다. 중복된 문자일경우 개체의 값을 추가하는 방식을 취하였다. 조합을 저장할 객체 ck를 정의한다.
조합을 얻어낼 함수를 구성한다(입력값 s='', db).
2.1 주어진 객체 db의 키값을 순차적으로 순회한다.
2.2 주어진 키값에 입력값 s를 더한 값이 객체 ck에 존재하는지를 판별하고 없다면 해당 값으로 새로운 키값을 정의한다. db 객체의 사본을 생성하고 해당 사본에 현재 키값을 하나 제거한다.(키값읠 밸류가 1이상이면 1감소, 1이면 해당 키를 제거)
2.3 정의된 값을 새로운 s 로, 구성된 사본을 새로운 db로 입력받는 새로운 함수를 수행한다.
2.4 조합 갯수를 하나 가산한다.
이 방식을 모든 경우에 수행하고나면 문제에서 요구하는 모든 조합의 수를 구할수 있으며, 주어진 예문을 잘수행하였다.
회복중