095. 미니 컴파일러
Hard
바이브코딩
MCPCompilerParser
문제 설명
[문제]
아주 단순화한 미니 컴파일러 MCP 서버를 구현한다.
컴파일러는 보통 소스 코드를 (1) 토큰으로 쪼개고(tokenize), (2) 구조로 분석하고(parse), (3) 실행(execute)하는 단계를 거친다. 이 서버는 "단일 변수 대입 + 사칙연산" 정도만 다루도록 크게 단순화했다. 예: "x = 5 + 3".
- 토큰화: 공백을 기준으로 조각낸다.
- 파싱: 단순화를 위해 토큰들을 공백으로 다시 이어 붙인 문자열을 반환한다(실제 구문 트리는 만들지 않음).
- 실행: "="의 오른쪽 식을 계산한 정수 결과를 반환한다.
[구현할 함수]
- tokenize(input_string: str) -> array<string>
공백을 기준으로 input_string을 토큰 배열로 나눠 반환한다.
- parse(tokens: array<string>) -> str
토큰 배열을 공백으로 이어 붙인 문자열을 반환한다.
- execute(ast: str) -> int
ast에서 "="의 오른쪽 식을 산술 계산한 정수 결과를 반환한다. 예: "x = 5 + 3"이면 5 + 3 = 8.
[입력·상태]
별도의 상태를 유지하지 않는다. 각 단계는 입력만으로 결과가 정해진다.
[제약]
- input_string과 ast는 문자열이고, tokenize의 반환은 문자열 배열이다.
- 토큰은 공백 하나를 기준으로 나누고, parse는 토큰들을 공백 하나로 다시 잇는다.
- [힌트] execute에는 문자열 산술식 계산이 필요하다(Python: 토큰 파싱 또는 ast.literal_eval 기반 / C++: 간단 파서 / Java: ScriptEngine 또는 간단 파서).
[예시]
tokenize("x = 5 + 3") -> ["x", "=", "5", "+", "3"]
parse(["x", "=", "5", "+", "3"]) -> "x = 5 + 3"
execute("x = 5 + 3") -> 8
로그인하고 풀기
AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.