아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

공항 코드

면접 대비

시간 제한8초메모리 제한512 MB

요약
공항 이름마다 첫 글자와 모음 뒤 글자를 모아 만든 부호를 k글자로 자를 때, 모든 부호가 서로 다르게 되는 가장 작은 k를 구하고 불가능하면 -1을 출력한다.
난이도

보통10점 중 5점

유형
문자열, 해시맵, 정렬, 이분 탐색
정답자
아직 제출이 없습니다

문제

JAG 왕국에서는 국내 공항마다 공항 코드를 부여해 식별한다.

공항 코드는 소문자 영어 알파벳으로 표기한 공항 이름을 바탕으로 다음 규칙에 따라 부여된다.

  1. 이름의 첫 글자와 모음(a, i, u, e, o) 바로 뒤에 오는 글자를 순서대로 뽑는다.
  2. 뽑은 문자열이 k글자 미만이면 그 문자열을 공항 코드로 쓰고, k글자 이상이면 뽑은 문자열의 앞 k글자를 공항 코드로 쓴다.

예를 들어 k = 3일 때 haneda에는 hnd, oookayama에는 ooo, tsu에는 t라는 코드가 부여된다.

그런데 이렇게 코드를 부여하면 이름이 다른 공항에 같은 코드가 부여될 수 있어 혼란을 부른다. 공항 이름 목록이 주어질 때, 모든 공항의 코드가 서로 다르게 되도록 할 수 있는지 판정하고, 가능하면 모든 공항 코드가 서로 다르게 되는 최소 k를 구하며, 불가능하면 그 사실을 알리는 프로그램을 작성하시오.

입력

입력은 100개 이하의 데이터 세트로 이루어진다. 각 데이터 세트는 다음 형식으로 주어진다.

n
s1
...
sn

첫째 줄에 공항의 수 n (2 ≤ n ≤ 50)이 정수로 주어지고, 이어지는 n개 줄에 공항 이름 si가 각각 문자열로 주어진다. 공항 이름은 'a'부터 'z'까지의 소문자 영어 알파벳으로만 이루어지며, 길이는 모두 1 이상 50 이하이다. 또한 주어지는 공항 이름은 모두 다르다. 즉, 1 ≤ i < j ≤ n일 때 si ≠ sj를 만족한다.

입력의 끝은 0 하나만으로 이루어진 줄로 나타낸다.

출력

각 데이터 세트에 대해, 모든 공항에 서로 다른 공항 코드를 부여할 수 있으면 그러한 최소 k를 한 줄에 출력한다. 불가능하면 -1을 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    3
    haneda
    oookayama
    tsu
    2
    azusa
    azishirabe
    2
    snuke
    snake
    4
    haneda
    honda
    hanamaki
    hawaii
    0
    
    예상 출력
    1
    4
    -1
    3