만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

약어

면접 대비

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

요약
본문에서 한 개의 대문자로 시작하는 단어 두 개 이상이 공백 하나로 이어진 최대 구간을 찾아, 첫 글자들을 모은 약어와 괄호에 담은 원문으로 바꾼다.
난이도

보통10점 중 5점

유형
문자열, 시뮬레이션, 구현, 그리디
정답자
아직 제출이 없습니다

문제

약어는 단어나 구를 짧게 줄인 표기다. 영어 abbreviation은 짧다는 뜻의 라틴어 brevis에서 왔다. 대문자로 시작하는 단어가 여러 개 이어진 부분을 각 단어의 첫 대문자만 이어 붙인 약어로 바꾸고, 그 뒤 괄호 안에 원래 부분을 그대로 적는 도구를 작성하라.

용어를 정확히 정의한다. 본문에서 단어는 영어 대소문자가 최대한 길게 이어진 구간이다. 대문자 단어는 대문자 한 개 뒤에 소문자가 하나 이상 붙은 단어다. 예를 들어 "Ab", "Abc", "Abcd", "Abcde"는 대문자 단어지만 "ab", "A", "AB", "ABc", "AbC"는 아니다.

약어로 줄일 수 있는 구간은 대문자 단어 두 개 이상이 이어진 부분으로, 이웃한 두 단어 사이는 반드시 공백 한 칸이다. 구간 안에는 줄바꿈도 문장 부호도 들어갈 수 없다.

약어로 줄일 수 있는 구간의 약어는 구간에 속한 각 단어의 첫 대문자를 순서대로 이어 붙인 다음, 공백 한 칸, 여는 괄호, 원래 구간, 닫는 괄호를 붙인 것이다.

바꾸는 구간은 항상 최대 구간이다. 즉 왼쪽이나 오른쪽으로 대문자 단어를 하나 더 붙여 늘릴 수 없는 구간만 바꾼다.

입력

입력은 최대 1000줄이고, 각 줄의 길이는 최대 120자다. 각 줄은 공백, 영어 대소문자, 쉼표, 마침표로만 이루어진다. 줄 앞뒤에 공백은 없고 빈 줄도 없다. 입력에는 줄이 적어도 하나 있다.

출력

원래 본문에서 약어로 줄일 수 있는 모든 최대 구간을 그 약어로 바꾼 결과를 출력한다. 공백과 문장 부호를 포함해 나머지 문자는 입력과 똑같이 유지한다.

예제3

  1. 예제 1

    입력
    This is ACM North Eastern European Regional Contest,
    sponsored by International Business Machines.
    The. Best. Contest. Ever.
    A Great Opportunity for all contestants.
    
    예상 출력
    This is ACM NEERC (North Eastern European Regional Contest),
    sponsored by IBM (International Business Machines).
    The. Best. Contest. Ever.
    A GO (Great Opportunity) for all contestants.
    
  2. 예제 2

    입력
    ab Ab A Abc AB Abcd ABc Abcde AbC
    
    예상 출력
    ab Ab A Abc AB Abcd ABc Abcde AbC
    
  3. 예제 3

    입력
    Oh  No  Extra Spaces.And,Punctuation Ruin Everything
    
    예상 출력
    Oh  No  ES (Extra Spaces).And,PRE (Punctuation Ruin Everything)