반응형
코드
n = int(input())
ex = list(input())
inp = []
num = []
cnt = 0
for i in range(n):
inp.append(int(input()))
for i in ex:
if 'A' <= i <= 'Z':
num.append(inp[cnt])
cnt+=1
else:
b = num.pop()
a = num.pop()
if i == '+':
num.append(a+b)
elif i == '-':
num.append(a-b)
elif i == '*':
num.append(a*b)
elif i =='/':
num.append(a/b)
print("%.2f" %num[0])
위 코드는 런타임 에러가 났다. 같은 알파벳이 왔을때를 고려 안해줘서 list 범위 밖에 있는 인덱스를 가져오려고 해서 에러가 났다. 그래서 알파벳을 아스키코드로 변환하여 같은 알파벳이 오면 같은 인덱스를 가져오게 해주었다.
n = int(input())
ex = list(input())
inp = []
num = []
for i in range(n):
inp.append(int(input()))
for i in ex:
if 'A' <= i <= 'Z':
number = ord(i) - ord('A')
num.append(inp[number])
else:
b = num.pop()
a = num.pop()
if i == '+':
num.append(a+b)
elif i == '-':
num.append(a-b)
elif i == '*':
num.append(a*b)
elif i =='/':
num.append(a/b)
print("%.2f" %num[0])
<파이썬 아스키코드 변환 함수>
- ord()
- 문자열을 아스키코드로 반환할 수 있는 함수이다.
>>>ord('a')
97
>>>ord('z')
122
- chr()
- 아스키코드를 문자열로 변환하는 함수이다.
>>> chr(65)
A
>>> chr(90)
Z
반응형
'알고리즘 > 자료구조' 카테고리의 다른 글
[백준][Python] 1966번 프린터 큐 (0) | 2022.02.08 |
---|---|
[백준][Python] 10799번 쇠막대기 (0) | 2022.02.08 |
[백준][Python] 1874번 스택 수열 (0) | 2022.02.07 |
[백준][Python] 10866번 덱 (0) | 2022.02.04 |
[백준][Python] 2164번 카드2 (0) | 2022.02.04 |
댓글