Soundex
시간 제한1초메모리 제한128 MB
각 대문자 단어를 Soundex 숫자 코드로 바꾸되, 같은 숫자를 갖는 인접 글자는 하나로 합칩니다.
문제
Soundex 코드는 철자를 바탕으로 발음이 비슷해 보이는 단어들을 하나로 묶는다. 예를 들어 "can"과 "khawn", "con"과 "gone"은 Soundex 코드에서 서로 같은 것으로 취급된다.
Soundex 코드는 각 글자를 숫자로 바꾸어 단어를 숫자 열로 변환한다. 각 숫자가 나타내는 글자는 다음과 같다.
1 = B, F, P, V
2 = C, G, J, K, Q, S, X, Z
3 = D, T
4 = L
5 = M, N
6 = R
글자 A, E, I, O, U, H, W, Y는 Soundex 코드에서 어떤 숫자로도 표현되지 않는다. 단어 안에서 서로 이웃한 두 글자가 같은 숫자 코드를 가지면, 그 숫자는 한 번만 적는다. 이때 두 글자가 바로 붙어 있을 때만 하나로 합치며, 숫자로 표현되지 않는 글자가 사이에 끼어 떨어져 있으면 각각 따로 적는다. Soundex 코드가 같은 단어는 서로 동등한 것으로 본다.
입력
입력의 각 줄에는 단어가 하나씩 주어진다. 모든 글자는 대문자이며, 단어의 길이는 20글자 미만이다. 입력은 파일의 끝(EOF)까지 이어진다.
출력
입력의 각 줄마다, 해당 단어의 Soundex 코드를 한 줄에 출력한다. 숫자로 표현되는 글자가 하나도 없는 단어라면 빈 줄을 출력한다.