이모티콘 출력

NYPC 2025 · Round 1

최근 메이플스토리의 채팅 시스템에 새롭게 다양한 이모티콘들이 추가되는 큰 개편이 있었다.

이 채팅 시스템에서는 사용자가 채팅 창에 문자를 입력할 때, 이모티콘 이름 앞, 뒤로 문자 :(콜론)을 붙이면 즉시 이 이모티콘 이미지로 변환된다. 예를 들어, 이름이 pink-bean-star인 이모티콘이 있는데, 사용자가 채팅 창에 :pink-bean-star:라고 입력하면 이 부분이 즉시 이모티콘의 이미지로 대체된다.

채팅 시스템에서는 채팅 창의 한 줄에 나타날 수 있는 문자 수의 제한 LL이 존재한다. LL개를 넘는 문자는 채팅 창의 그다음 줄에 출력된다. 또한, 이미지로 변환된 이모티콘은 문자 11개에 해당된다. 예를 들어, L=4L = 4일 때, 사용자가 ab:pink-bean-star:cd를 입력하면, 총 두 줄로 출력되며, 마지막 줄에는 마지막 문자 d만 출력된다.

사용자가 채팅 창에 입력하는 문자열 SS가 주어질 때, 한 줄에 출력되는 글자 수 제한 LL을 고려해서 채팅 창에 나타나는 모습을 출력하는 프로그램을 작성하시오.

사용자는 채팅 창에 문자열 SS의 문자를 앞에서부터 차례대로 하나씩 입력함에 유의하라.

입력 형식

첫 줄에 이모티콘의 개수를 나타내는 정수 NN과 채팅 창의 한 줄에 출력되는 최대 글자 수를 나타내는 정수 LL이 주어진다. (1N10;1 \le N \le 10; 1L251 \le L \le 25)

그다음 NN개의 줄 각각에는 이모티콘의 이름이 주어진다. 이름은 알파벳 대소문자, -(하이픈), _(밑줄)로 구성된 길이 11 이상 1515 이하인 문자열이다. NN개의 이모티콘의 이름은 모두 다르다.

그다음 줄에 사용자가 입력하는 문자열 SS가 주어진다. SS는 알파벳 대소문자, -(하이픈), _(밑줄), :(콜론)으로 구성된 길이 11 이상 300300 이하인 문자열이다.

출력 형식

사용자가 입력하는 문자열 SS가 채팅 창에 출력되는 모습을 출력한다.

채팅 창의 한 줄에 최대 LL개 문자가 출력되어야 하고, 한 줄에 다 출력되지 못한 부분은 이어서 그다음 줄에 출력한다.

이미지로 변환된 이모티콘은 문자 11개로 간주한다. 다만, 프로그램의 출력으로는 이모티콘 이름의 앞, 뒤에 각각 문자 []를 붙여서 출력한다. 예를 들어, 입력 :pink-bean-star:에 대해서는 [pink-bean-star]를 출력한다.

예제 1

입력

1 4 pink-bean-star ab:pink-bean-star:cd

출력

ab[pink-bean-star]c d

예제 2

입력

2 5 ok raised_hands :ok:ok:raised_hands::no::

출력

[ok]ok[raised_hands]: no::

예제 3

입력

1 25 small :small::Small::SMALL:

출력

채점 방식

입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.

종류 1: 18

SS는 문자 :(콜론)을 포함하지 않음.

종류 2: 35

L=1L = 1

종류 3: 27

SS에 등장하는 모든 :(콜론)은 이모티콘으로 대체되는 데에 사용됨.

종류 4: 20

모든 입력 케이스가 주어짐.

해설