본문 바로가기

C언어

2025년 2학기 2주차

n = int(input())
expr = input().strip()
values = [int(input()) for _ in range(n)]

stack = []

for token in expr: #후위연산자 계산을 시작한다
    if token.isalpha():  # 피연산자인지 확인한다
        idx = ord(token) - ord('A')  
        stack.append(float(values[idx])) #각 알파벳이 맞는 값을 넣어준다
    else:  # 연산자를 수행한다
        y = stack.pop() #스택에 들어간 값을 꺼내온다
        x = stack.pop()
        if token == '+':
            stack.append(x + y)
        elif token == '-':
            stack.append(x - y)
        elif token == '*':
            stack.append(x * y)
        elif token == '/':
            stack.append(x / y)

result = stack.pop()
print(f"{result:.2f}")

 

import heapq #힙을 사용해야하는 문제이므로 내장함수를 불러와준다
import sys

input = sys.stdin.readline
n = int(input())

heap = []

for _ in range(n):
    y = list(map(int, input().split()))#한 줄로 받았던 숫자들을 분리해 리스트로 넣는다
    for x in y:
        if len(heap) < n: #정해진 힙의 크기보다 작을 경우 평범하게 넣어준다
            heapq.heappush(heap, x)
        else: #메모리가 너무 커지는 걸 방지하기 위해 중간중간 버리는 과정을 가져준다. 힙의 크기를 유지한다.
            if x > heap[0]:
                heapq.heappushpop(heap, x)

print(heap[0])

'C언어' 카테고리의 다른 글

2025년 2학기 4주차 C언어  (1) 2025.10.05
2025년 2학기 3주  (0) 2025.09.28
2025년 2학기 1주차  (0) 2025.09.14
2025년 여름학기 9주차 C언어  (0) 2025.08.24
2025년 여름학기 8주차 C언어  (2) 2025.08.17