해설
에 한 번이라도 등장하는 문자들의 집합을 라고 하자.
먼저, 공통 부분수열에 포함되는 모든 문자는 에 등장해야 하므로 반드시 에 속해야 한다. 따라서 답은 에서 에 속하는 문자의 개수를 넘을 수 없다.
반대로, 에서 에 속하는 문자만 순서대로 모두 골라 만든 문자열을 라고 하자. 의 각 문자는 의 어딘가에 등장한다. 현재까지 의 어느 위치까지 사용했더라도, 그 뒤의 다음 개 문자 안에는 원하는 문자가 다시 등장한다. 그러므로 의 문자를 앞에서부터 차례대로 모두 고를 수 있고, 는 의 부분수열이다.
따라서 답은 의 문자 중 에 한 번이라도 등장하는 문자의 개수이다. 에 등장하는 문자를 표시한 뒤 를 한 번 순회하면 된다.
시간 복잡도는 이고, 추가 공간 복잡도는 이다.
Solution written by GPT5.6