시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 128 MB4086224908.885%

문제

당신은 사칙연산을 할 줄 아는가? 식이 주어지면, 그 식을 계산하여서 사칙연산을 할 줄 안다는 것을 보여라.

이 문제에서 계산할 은 다음의 문법으로 정의되는 <expr>이다.

<digit> = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
<number> = <digit> | <number> <digit>
<expr> = <number> | <expr> '+' <expr> | <expr> '-' <expr> | <expr> '*' <expr> | <expr> '/' <expr> | '(' <expr> ')'

입력

첫째 줄에 계산해야 하는 식이 주어진다. 식은 ()*/+-0123456789의 문자로만 이루어져 있으며, 길이는 1,000자 이하이다.

출력

식의 계산 결과를 출력한다. 만약 식이 올바르지 않아 계산할 수 없는 경우라면 ROCK을 출력한다.

  • 식을 계산할 때는 일반적인 연산의 우선순위를 따른다. 즉 괄호(()) 안의 식 → 곱하기(*)와 나누기(/) → 더하기(+)와 빼기(-) 순서대로 계산하며, 같은 순위의 연산이 여러 개일 경우 왼쪽부터 순서대로 계산한다.
  • 주어진 식이 위의 문법을 만족할 경우, 식을 계산하는 과정에서 나눗셈이 등장한다면 반드시 나눗셈의 결과가 정수로 나누어떨어지거나 제수(나누는 수)가 0임이 보장된다. 이때, 제수가 0인 경우가 등장한다면 식이 올바르지 않은 것으로 간주한다.

예제 입력 1

5+(1+2)*3

예제 출력 1

14

예제 입력 2

(+6+3)

예제 출력 2

ROCK

출처