[백준/Python] 1935. 후위 표기식 2

2024. 10. 25. 20:11·코딩테스트/BAEKJOON
728x90
반응형

🍀 문제유형: 스택 

🍀  문제설명(링크 참조) 

https://www.acmicpc.net/problem/1935

 

🍀  풀이코드 

n = int(input())
cmds = input()
nums = []
for _ in range(n):
    nums.append(int(input()))
#pt = 0
stk = []
for cmd in cmds:
    if cmd.isalpha():
        stk.append(nums[ord(cmd)-ord('A')])
        #stk.append(nums[pt])
        #pt += 1
    else:
        a = stk.pop()
        b = stk.pop()
        #print(f"about a{a}, b{b}")
        if cmd == "+":
            stk.append(a+b)
        elif cmd == "*":
            stk.append(a*b)
        elif cmd == "/":
            stk.append(b/a)
        elif cmd == "-":
            stk.append(b-a)
    #print(stk)
print(f"{stk[0]:.2f}")

 

🍀 배운 점 

- 런타임 에러가 발생하는 이유가, pt를 사용해서라는 점을 알게됨. alpha가 나올 때마다 1씩 증가해 접근하면 시간복잡도가 똑같을 거라고 생각했는데, 아니었나보다.. 

- ord() 함수는 문자의 ASCII 코드를 리턴하는데, " 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이는 100을 넘지 않는다 " 이 조건을 생각하면 ord(cmd) - ord('A')로 쉽게 인덱스를 찾아갈 수 있군. 싶었다. 

- 아 참, 그리고 소수점 표기 출력은 :.#f 임 !!

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'코딩테스트 > BAEKJOON' 카테고리의 다른 글

[백준/Python] 3040. 백설 공주와 일곱 난쟁이  (0) 2024.10.26
[백준/Python] 2075. N번째 큰 수  (0) 2024.10.25
[백준/Python] DFS/BFS-5014번. 스타트링크  (1) 2024.10.12
[백준/Python] DFS/BFS-1697번. 숨바꼭질  (3) 2024.10.12
[백준/Python] DFS/BFS-2644번. 촌수 문제  (2) 2024.10.11
'코딩테스트/BAEKJOON' 카테고리의 다른 글
  • [백준/Python] 3040. 백설 공주와 일곱 난쟁이
  • [백준/Python] 2075. N번째 큰 수
  • [백준/Python] DFS/BFS-5014번. 스타트링크
  • [백준/Python] DFS/BFS-1697번. 숨바꼭질
heeya16
heeya16
개발 공부 냠냠
  • heeya16
    개발자 희야
    heeya16
  • 전체
    오늘
    어제
    • 분류 전체보기 (106)
      • 코딩테스트 (66)
        • 프로그래머스 (38)
        • SWEA (2)
        • BAEKJOON (26)
      • 알고리즘 (7)
      • 자료구조 (19)
      • 프로젝트 (5)
      • 취업 주르륵 (3)
      • 데이터베이스 (0)
      • IT지식 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    1003
    10448
    10773
    10월
    10진수
    11047
    11399
    11403
    11866
    1449
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
heeya16
[백준/Python] 1935. 후위 표기식 2
상단으로

티스토리툴바