손상된 XML
시간 제한2초메모리 제한1024 MB
문자 하나가 다른 문자로 바뀐 XML 형태의 문자열이 주어질 때, 문자 하나만 바꿔서 올바른 XML 문자열을 복원한다.
문제
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 문자열을 출력한다. 답이 여러 개라면 아무거나 출력해도 된다.