sw/알고리즘
백준 5613 계산기 프로그램
넉넉-
2022. 11. 14. 01:12
오답노트
- 입력된 문자열을 int로 형변환을 try해서 성공/실패 경우로 나누어 처리하였음. 하지만 무조건 숫자 한 번, 연산자 한 번 이런 순서가 고정되어 input 된다는 것을 알면 굳이 try-except 을 쓰지 않아도 더 간결한 코드로 풀이가 가능하다.
궁금한 내용
- 형변환 오류에 대한 except message 는 무엇인가? (이걸 알면 초기 답안대로 했을 때 다른 오류는 받지 않도록 할 수 있음)
흐름
- 생략
코드(초기 답안)
import collections
que = collections.deque()
x = input()
result = int(x)
while x != '=':
try:
num = int(x)
except: #연산자일 경우 q에 저장
que.append(x)
x = input()
continue
if que:
op = que.pop()
if op == '+':
result += num
elif op == '-':
result -= num
elif op == '*':
result *= num
elif op == '/':
result //= num
x = input()
print(result)
코드(수정 답안)
result = int(input())
op = input()
while op != '=':
num= int(input())
if op == '+':
result += num
elif op == '-':
result -= num
elif op == '*':
result *= num
elif op == '/':
result //= num
op = input()
print(result)