i18n

면접 대비

시간 제한1초메모리 제한128 MB

요약
텍스트에서 i18n 방식으로 축약된 단어를, 이전에 등장했고 유일하게 확정되는 경우에만 원래 단어로 복원하며 대소문자와 구분자를 그대로 유지하는 문제입니다.
난이도

보통10점 중 5점

유형
문자열, 해시맵, 구현
정답자
아직 제출이 없습니다

문제

국제화(internationalization)와 지역화(localization)는 긴 단어라서 보통 i18n, l10n으로 줄여 씁니다. 첫 글자와 마지막 글자 사이에 있는 숫자는 생략된 글자의 개수를 뜻합니다. 이 축약 방식은 어떤 단어에도 자연스럽게 적용할 수 있는 매우 강력한 방법입니다.

단어는 그 단어가 텍스트에서 앞서 등장한 적이 있을 때에만 축약할 수 있습니다. 단어를 축약할 때에는 첫 글자와 마지막 글자만 남기고, 그 사이의 모든 글자를 생략된 글자 수로 바꿉니다.

여러분이 할 일은 주어진 텍스트에서 이러한 축약형을 가능한 경우마다 원래 단어로 되돌리는 프로그램을 작성하는 것입니다. 축약형은 그 확장이 유효하고(valid) 모호하지 않을(unambiguous) 때에만 확장할 수 있습니다.

  • 확장이 유효하다는 것은, 확장한 완전한 단어가 텍스트에서 앞서 등장한 적이 있고 그 단어의 축약형이 지금 확장하려는 축약형과 일치한다는 뜻입니다. 유효성을 판단할 때 대소문자는 무시합니다. 예를 들어 i18n을 internationalization으로 확장하는 것은 유효합니다(앞에서 internationalization이 대문자 I로만 등장했더라도 마찬가지입니다). 반면 p14n을 parameterization으로 확장하는 것은 유효하지 않습니다. parameterization이 그 축약형보다 앞서 등장한 적이 없기 때문입니다. 또한 a11n을 abbreviation으로 확장하는 것도 유효하지 않습니다. a11n은 abbreviation의 올바른 축약형이 아니기 때문입니다(올바른 축약형은 a10n입니다).
  • 확장이 모호하지 않다는 것은, 유효한 확장이 정확히 하나뿐이라는 뜻입니다. 예를 들어 l10n은 localization으로 모호함 없이 확장되지만, p5m은 problem과 program이 모두 p5m으로 축약되기 때문에 모호함 없이 확장할 수 없습니다.

입력

입력은 최대 1000줄이며, 각 줄은 최대 80자입니다. 각 줄은 하나 이상의 단어로 이루어지며, 단어는 공백과 특수 기호 -, ,, ., ", (, ), :, ;, !, ?로 구분됩니다. 줄 끝에 공백은 없지만, 다른 구분 기호는 줄 끝에 올 수 있습니다.

각 단어는 완전한 단어이거나 축약된 단어입니다.

  • 완전한 단어는 1자에서 32자 사이의 라틴 문자로 이루어지며, 세 가지 대소문자 형태 중 하나로 나타납니다: 모두 소문자, 첫 글자만 대문자, 또는 모두 대문자.
  • 축약된 단어는 라틴 문자 한 개, 2 이상 30 이하의 숫자(맨 앞에 0은 오지 않음), 라틴 문자 한 개로 이루어집니다. 축약된 단어도 이에 대응하는 세 가지 대소문자 형태를 가집니다: all l7e, F3t C5l L4r, 또는 ALL C5L L5S.

출력

원래의 구분 기호를 그대로 유지한 채 원문을 출력하되, 가능한 경우마다 축약된 단어를 완전한 단어로 확장합니다(위 설명 참고). 확장된 단어의 대소문자는 그 단어가 대체하는 축약형의 대소문자와 일치해야 합니다.

유효하지 않거나 모호한 축약형은 축약된 상태 그대로 둡니다. 출력의 각 줄은 80자보다 길어질 수 있습니다.

예제6

  1. 예제 1

    입력
    The first line of sample input.
    The s4d l2e of s4e i3t.
    Lone, lone, l4e...
    S4e input last l4e!
    
    예상 출력
    The first line of sample input.
    The s4d line of sample input.
    Lone, lone, l4e...
    Sample input last l4e!
    
  2. 예제 2

    입력
    problem program p5m
    
    예상 출력
    problem program p5m
    
  3. 예제 3

    입력
    localization rocks l10n
    
    예상 출력
    localization rocks localization
    
  4. 예제 4

    입력
    internationalization matters. I18N
    
    예상 출력
    internationalization matters. INTERNATIONALIZATION
    
  5. 예제 5

    입력
    Abbreviation a10n a11n
    
    예상 출력
    Abbreviation abbreviation a11n
    
  6. 예제 6

    입력
    The p14n is unknown.
    
    예상 출력
    The p14n is unknown.