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

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

손상된 XML

시간 제한2초메모리 제한1024 MB

요약
문자 하나가 다른 문자로 바뀐 XML 형태의 문자열이 주어질 때, 문자 하나만 바꿔서 올바른 XML 문자열을 복원한다.
난이도

보통10점 중 7점

유형
문자열, 스택, 그리디, 구현
정답자
아직 제출이 없습니다

문제

XML은 서로 다른 프로그램 사이에서 데이터를 주고받는 데 널리 쓰이는 형식이다. 최근 프로그래머 이바노프는 중요한 정보를 XML 문자열로 저장하는 작은 프로그램을 작성했다.

XML 문자열은 여는 태그와 닫는 태그로 이루어진다.

여는 태그는 여는 꺾쇠괄호(<)로 시작하고, 그 뒤에 태그 이름인 영문 소문자로만 이루어진 비어 있지 않은 문자열이 오며, 닫는 꺾쇠괄호(>)로 끝난다. 여는 태그의 예로 <a>, <dog>가 있다.

닫는 태그는 여는 꺾쇠괄호로 시작하고, 그 뒤에 슬래시(/)가 오고, 그 뒤에 태그 이름인 영문 소문자로만 이루어진 비어 있지 않은 문자열이 오며, 닫는 꺾쇠괄호로 끝난다. 닫는 태그의 예로 </a>, </dog>가 있다.

XML 문자열이 올바르다는 것은 다음 규칙으로 만들어질 수 있다는 뜻이다.

  • 빈 문자열은 올바른 XML 문자열이다.
  • A와 B가 올바른 XML 문자열이면, A 뒤에 B를 이어 붙인 문자열 AB도 올바른 XML 문자열이다.
  • A가 올바른 XML 문자열이면, A의 앞에 여는 태그를, 뒤에 같은 이름의 닫는 태그를 붙인 문자열 <X>A</X>도 올바른 XML 문자열이다. 여기서 X는 영문 소문자로만 이루어진 비어 있지 않은 임의의 문자열이다.

예를 들어 다음 문자열은

<a></a>
<a><ab></ab><c></c></a>
<a></a><a></a><a></a>

올바른 XML 문자열이고, 다음 문자열은

<a></b>
<a><b>
<a><b></a></b>

올바른 XML 문자열이 아니다.

이바노프는 저장한 XML 문자열이 담긴 파일을 동료 페트로프에게 전자 우편으로 보냈다. 그런데 전송 과정에서 파일이 손상되어 문자열의 정확히 한 문자가 다른 문자로 바뀌었다.

페트로프가 받은 문자열이 주어질 때, 이바노프가 보냈던 원래 XML 문자열을 복원하는 프로그램을 작성해야 한다.

입력

입력 파일에는 정확히 한 문자를 바꾸면 올바른 XML 문자열이 되는 문자열이 하나 주어진다. 문자열의 길이는 7 이상 1000 이하이다. 문자열은 영문 소문자와 문자 <(ASCII 코드 60), >(ASCII 코드 62), /(ASCII 코드 47)로만 이루어진다.

입력 파일의 문자열은 줄 바꿈 문자로 끝난다.

출력

출력 파일에는 입력 파일의 문자열에서 정확히 한 문자를 다른 문자로 바꾸어 얻을 수 있는 올바른 XML 문자열을 출력한다. 답이 여러 개라면 아무거나 출력해도 된다.

예제4

  1. 예제 1

    입력
    <a></b>
    
    예상 출력
    <a></a>
    
  2. 예제 2

    입력
    <a><aa>
    
    예상 출력
    <a></a>
    
  3. 예제 3

    입력
    <a><>a>
    
    예상 출력
    <a></a>
    
  4. 예제 4

    입력
    <a/</a>
    
    예상 출력
    <a></a>