알림 발송 시스템은 문구 템플릿과 치환 값 목록을 받아 최종 문구를 만듭니다.
solution(template, entries) 를 구현해 전개된 문구를 문자열로 반환하세요.
template — 치환 자리(placeholder)가 섞인 문구entries — "키=값" 형태의 문자열 배열= 하나 를 기준으로 키와 값으로 나뉩니다.
즉 "expr=x=y+1" 의 키는 expr, 값은 x=y+1 입니다."x=" → 키 x, 값 "").템플릿을 왼쪽부터 한 번 훑으면서 다음을 적용합니다.
{{ 는 여는 중괄호 한 개 { 로, }} 는 닫는 중괄호 한 개 } 로 출력합니다.{키} 는 해당 키의 값으로 바꿉니다. 키가 entries 에 없으면 <none> 을 출력합니다.{, }, {다른키} 가 들어
있어도 글자 그대로 결과에 남습니다.template = "안녕하세요 {name}님, 주문 {order}건이 준비되었습니다."
entries = ["name=김철수", "order=3"]
→ "안녕하세요 김철수님, 주문 3건이 준비되었습니다."
template = "{{a}} = {a}"
entries = ["a=1"]
→ "{a} = 1"
({{ → "{", a, }} → "}" 이므로 앞부분은 치환되지 않는다)
template = "{{{name}}}"
entries = ["name=Bob"]
→ "{Bob}"
({{ → "{", {name} → "Bob", }} → "}")
template = "{a}"
entries = ["a={b}", "b=STOP"]
→ "{b}"
(삽입된 값 "{b}" 는 재해석하지 않으므로 STOP 이 되지 않는다)
template = "{a}-{b}"
entries = ["a=1"]
→ "1-<none>"template.length ≤ 10,000entries.length ≤ 200, 각 항목 길이 ≤ 200entries 의 각 항목에는 = 가 최소 한 개 있고, 키는 길이 1~20 의 영문 소문자·숫자·_ 이다template 의 치환 자리 키도 영문 소문자·숫자·_ 로만 이루어진다template 은 항상 올바른 형태다. 즉 모든 { 는 {{ 의 일부이거나 올바른 {키} 의
시작이고, 모든 } 는 }} 의 일부이거나 {키} 의 끝이다시간 복잡도 목표: O(N + M) (N = 템플릿 길이, M = entries 전체 길이)
▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.