본문 바로가기

알고리즘/구름톤 챌린지

[구름톤 챌린지] 1주차 3일차 합 계산기

728x90

문제


보통의 계산기는 한 번에 하나의 계산 결과만 나타낼 수 있다. 그래서 여러 개의 계산 결과가 필요한 경우에는 이전 계산 결과를 따로 기록해 둬야 하는 번거로움이 있었다.

플레이어는 이러한 점을 해결하기 위해서 합 계산기를 만들었다. 합 계산기는 여러 개의 계산식을 입력받은 뒤, 각각의 계산 결과를 모두 합해서 출력하는 기능을 가지고 있다. 합 계산기에 입력할 수 있는 계산식은 아래 조건을 만족해야 한다.

  • 계산식은 <정수> <연산 기호> <정수> 형태이다.
  • <연산 기호> 에는 더하기, 빼기, 곱하기, 나누기의 네 가지 사칙 연산 기호가 들어갈 수 있다. 이때, 나눗셈 결과의 나머지는 버린다.

합 계산기에 입력할 $T$개의 계산식이 주어질 때, 합 계산기의 출력 결과를 구해보자.

입력


첫째 줄에 식의 개수 $T$가 주어진다.

다음 $T$개의 줄에는 계산식이 주어진다.

 

  • $1 \leq T \leq 100$
  • 계산식은 <정수> <연산 기호> <정수> 형태로 주어진다.
  • <정수>에는 $1$이상 $1\ 000$이하의 정수가 주어진다.
  • <연산 기호> 에는 +, -, *, / 중 하나의 문자가 주어진다. 각각 더하기, 빼기, 곱하기, 나누기 기호를 의미한다.

출력


합 계산기가 계산한 결과를 출력하시오.

 


문제 접근 방식


문자열로 받아서 공백을 기준으로 분리해주었다. 이후 가운데 있는 연산자가 어떤 것이냐에 따라 케이스를 분류하여 연산을 실행해주었다.

 


정답 코드


# 합 계산기
import sys
input = sys.stdin.readline

T = int(input())
total = 0
for _ in range(T):
    a, order, b = input().rstrip().split()
    a, b = int(a), int(b)
    if order == '+':
        total += (a+b)
    elif order == '-':
        total += (a-b)
    elif order == '*':
        total += (a*b)
    else:
        total += (a//b)
print(total)

 


특별히 배운 점


파이썬이기 때문에 eval함수로 쉽게 구현할 수 있다는 점을 간과했다. 이렇게도 풀 수 있다는 사실을 다시 기억하자.