문제 › 10

10. 간단 계산기

Easy 바이브코딩
문제 설명
[문제] 산술 표현식 문자열을 받아 계산 결과를 돌려주는 MCP(Model Context Protocol, AI가 호출하는 함수 모음) 서버를 구현하세요. 산술 표현식이란 "2+3", "(10+5)*2" 처럼 숫자와 연산자로 이루어진 수식 문자열입니다. [구현할 함수] - calculate(expression: str) -> float 산술 표현식 문자열을 받아 계산 결과를 실수(float)로 반환한다. 0으로 나누는 경우처럼 계산할 수 없으면 nan 등 적절한 대체값을 반환한다. [입력·상태] - expression: 숫자, 사칙연산자(+ - * /), 괄호 ( ), 소수점으로만 이루어진 수식 문자열. - 사칙연산 우선순위(곱셈·나눗셈이 덧셈·뺄셈보다 먼저)와 괄호를 지켜 계산한다. [제약] - 보안상 코드 평가 기능(Python eval/exec/ast, 그에 준하는 타 언어 기능)은 사용 금지. 허용 문자만 통과시킨 뒤 직접 파싱해 계산한다. - 결과는 소수를 포함할 수 있다. - [힌트] 우선순위와 괄호는 재귀 하강 파서(expr -> term -> factor 순)로 처리할 수 있다. [예시] calculate("2+3") -> 5 calculate("(10+5)*2") -> 30 calculate("7.5*2.5") -> 18.75
로그인하고 풀기 AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.