백준 5613 계산기 프로그램
문제
덧셈, 뺄셈, 곱셈, 나눗셈을 할 수 있는 계산기 프로그램을 만드시오.
입력
입력의 각 줄에는 숫자와 +, -, , /, =중 하나가 교대로 주어진다. 첫 번째 줄은 수이다. 연산자의 우선 순위는 생각하지 않으며, 입력 순서대로 계산을 하고, =가 주어지면, 그때까지의 결과를 출력한다. 주어지는 수는 10^8 이하의 양의 정수이다. 계산 중 결과는 0 또는 음수가 될 수 있지만, -10^8 ~ 10^8 범위를 넘지는 않는다. 또, 나눗셈에서 소수점은 버린다. 따라서, 100/33 = 99이다.
피제수가 음수일 때 나눗셈을 하는 경우는 입력으로 주어지지 않는다.
출력
첫째 줄에 계산 결과를 출력한다.
예제 입력 1
1
1
예제 출력 1
2
풀이 과정
이전 수를 저장하고 연산 예정이 될 연산자도 저장해둔다.
코드
prev = result = 0
op = ''
while True:
now = input()
if now.isdigit(): # 입력이 숫자이면
if op == '+': # 이전 연산자가 +이면 더하고 갱신
prev += int(now)
elif op == '-': # 이전 연산자가 -이면 빼고 갱신
prev -= int(now)
elif op == '*': # 이전 연산자가 *이면 곱하고 갱신
prev *= int(now)
elif op == '/': # 이전 연산자가 /이면 나누고 갱신
prev //= int(now)
else: # 이전 연산자가 없다면 (처음 받는 숫자 입력이면) 그 입력 숫자로 갱신
prev = int(now)
else: # 입력이 연산자이면
if now == '=': # 입력이 연산자 중 =이면 정답은 이전 값이고 탈출
result = prev
break
op = now # 연산자 갱신
print(result)
Author And Source
이 문제에 관하여(백준 5613 계산기 프로그램), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@mynote/백준-5613-계산기-프로그램저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)