축약된 별명
면접 대비시간 제한2초메모리 제한2048 MB
길이가 l인 서로 다른 별명 n개가 주어졌을 때, 각 별명을 다른 별명과 구별하는 가장 짧은 접두사 길이의 합을 구합니다.
문제
당신은 사용자가 많은 대형 인터넷 사이트의 운영자입니다. 모든 사용자는 사이트에 로그인할 때 쓸 별명을 정확히 글자로 골랐습니다. 최근 디스크 공간이 부족해지기 시작했습니다. 별명을 모두 저장하는 데 많은 용량이 들기 때문입니다.
추가 저장 공간을 살 예산이 없어서 필요한 저장 공간을 줄일 방법을 찾고 있습니다. 친구가 다음 압축 아이디어를 제안했습니다. 각 사용자의 별명 전체를 저장하는 대신, 다른 별명과 같은 접두사를 갖지 않는 한 접두사만 저장해도 된다는 것입니다. 예를 들어 별명이 james와 jacob뿐이라면 jam과 jac만 저장해도 둘 다 구별할 수 있습니다.
이 아이디어가 꽤 흥미롭고, 디스크에 여유 공간이 생기기를 기대하고 있습니다. 이 압축 기법으로 모든 별명을 저장하는 데 필요한 공간을 구하려고 합니다.
입력
입력은 다음과 같습니다.
- 첫 줄에 두 정수 과 (, )이 주어집니다. 별명의 개수와 각 별명의 길이입니다.
- 이어서 개의 줄에 별명이 한 줄씩 주어집니다. 각 별명은 정확히 개의 영어 소문자(
a-z)로 이루어진 문자열입니다. 모든 별명은 서로 다릅니다.
출력
이 압축 기법을 적용했을 때 여전히 저장해야 하는 글자의 총 개수를 출력합니다.