문자열에 적힌 명령을 풀어서 실행해요. 소문자 하나는 명령 한 번이고, k[내용]은 내용을 k번 반복한다는 뜻이에요. 반복 안에 반복이 들어갈 수 있어요. 명령의 종류와 관계없이 총 몇 번 실행하는지 구해요.
long long solution(string commands)가 총 실행 횟수를 반환하도록 두 빈칸을 채워 주세요. 명령 문자열을 실제로 모두 펼칠 필요는 없어요.
매개변수와 반환값
문자열 길이는 0200이에요. 문자는 az, 11,000,000,000이에요. 빈 문자열이면 0을 반환해요.9, [와 ]만 사용해요. 숫자는 반드시 바로 뒤의 [와 짝을 이루고, 모든 대괄호가 올바르게 짝지어진 유효한 문법이에요. 숫자는 한 자리예요. 대괄호 안은 비어 있지 않아요. 반복·소문자를 나란히 이어 쓸 수 있어요. 최대로 겹친 반복의 깊이는 8, 총 실행 횟수는 0
예시
a2[bc]d→6:a,bc,bc,d를 실행하므로1+2×2+1=6이에요.2[a3[b]]→8: 안쪽3[b]는 세 번,a3[b]는 네 번이에요. 이를 두 번 실행해요.
자동 채점 입력·출력
입력 한 줄 전체가 commands예요. 빈 문자열은 빈 줄로 전달해요. 실행 횟수를 한 줄에 출력해요. main은 채점용이며 작성 대상은 두 빈칸이에요.
예시 입력
a2[bc]d
예상 결과
6
예시 입력
2[a3[b]]
예상 결과
8
핵심 개념
string-parsing: 유효한 반복 문법을 읽고 숫자·문자·괄호를 구분해요.stack-queue: 가장 안쪽 상태부터 꺼내 바깥 상태와 합쳐요.stl-string: 문자열을 펼치지 않고 순회해요.