마크업 처리기

면접 대비

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

요약
작은 마크업 언어를 해석해 굵게, 기울임, 크기, 처리 중단 토글 명령을 적용하고 제거한 뒤 순수 텍스트만 출력한다.
난이도

보통10점 중 5점

유형
문자열, 시뮬레이션, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

마크업 언어는 텍스트 파일의 서식을 지정하는 데 도움을 주는 컴퓨터 언어입니다. 특별한 키워드로 텍스트를 표시하여 글꼴, 페이지 스타일, 문단 스타일 등을 제어할 수 있습니다. TeX, troff, HTML이 마크업 언어의 예입니다.

이러한 텍스트는 맞춤법 검사를 적용하기 어렵기 때문에, 보통 마크업을 제거하고 순수한 텍스트만 남기는 전용 처리기가 필요합니다. 이 문제에서는 작은 마크업 언어를 위한 그런 처리기를 작성해야 합니다. 프로그램은 마크업이 포함된 텍스트를 읽어, 모든 마크업을 적용하고 제거한 순수 텍스트를 출력합니다.

모든 명령은 \ 문자로 시작합니다. \ 바로 뒤의 문자가 아래 표에 있는 명령이 아니라면, 그 문자는 순수 텍스트로 그대로 출력됩니다. 예를 들어 마크업 \\는 하나의 \를 출력합니다.

명령의미
\b굵게(bold)를 켜거나 끕니다(처음에는 꺼짐).
\i기울임(italic)을 켜거나 끕니다(처음에는 꺼짐).
\s글꼴 크기를 설정합니다. s 바로 뒤에 선택적으로 숫자가 옵니다. 숫자가 없으면 이전 크기로 되돌립니다.
\*마크업 처리를 켜거나 끕니다. 처리가 꺼져 있으면 마크업은 있는 그대로의 문자로 취급됩니다(처음에는 켜짐).

\s 뒤의 숫자는 소수점을 포함할 수 있어 12, 9.5, 11., .5는 모두 올바른 숫자입니다.

출력은 순수 텍스트이므로 굵게, 기울임, 크기 명령은 눈에 보이는 문자를 만들지 않고 그대로 소비됩니다. 처리가 꺼져 있는 동안에는 \*만 여전히 인식되어(처리를 다시 켤 수 있도록) \를 포함한 나머지 모든 문자는 있는 그대로 출력됩니다.

입력

입력은 위 언어의 마크업이 포함된 순수 텍스트입니다. 파일이 시작될 때 마크업 처리는 켜져 있습니다. 파일의 끝(EOF)에 도달할 때까지 처리하십시오.

출력

모든 마크업을 적용하고 제거한 순수 텍스트를 출력하십시오. 서식 명령은 제거하고, 일반 문자와 줄바꿈은 입력에 나타난 그대로 유지해야 합니다.

예제1

  1. 예제 1

    입력
    \s18.\bMARKUP sample\b\s
    
    \*For bold statements use the \b command.\*
    
    If you wish to \iemphasize\i something use the \\i command.
    
    For titles use \s14BIG\s font sizes, 14 points usually works well.
    
    Remember that all of the commands toggle except for the \\s command.
    
    예상 출력
    MARKUP sample
    
    For bold statements use the \b command.
    
    If you wish to emphasize something use the \i command.
    
    For titles use BIG font sizes, 14 points usually works well.
    
    Remember that all of the commands toggle except for the \s command.