관리 메뉴

솜씨좋은장씨

[BaekJoon] 5613번 : 계산기 프로그램 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 5613번 : 계산기 프로그램 (Python)

솜씨좋은장씨 2022. 5. 21. 13:56
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 계산기 프로그램 입니다.

 

5613번: 계산기 프로그램

입력의 각 줄에는 숫자와 +, -, *, /, =중 하나가 교대로 주어진다. 첫 번째 줄은 수이다. 연산자의 우선 순위는 생각하지 않으며, 입력 순서대로 계산을 하고, =가 주어지면, 그때까지의 결과를 출

www.acmicpc.net

👨🏻‍💻 문제 풀이

더하기 빼기 곱하기 나누기를 사칙연산을 지켜가면서 풀어야하는 줄 알고 python의 eval을 활용하여 풀었다가

입출력 예시 넣어 풀어보니 그냥 나온 연산자 순서대로 풀면 되는 문제였습니다.

전체 코드는 아래를 참고해주세요.

👨🏻‍💻 코드 ( Solution )

def calculate_program(num_and_operator):
    for i in range(len(num_and_operator) - 2):
        if num_and_operator[i+1] == "-":
            num_and_operator[i+2] = str(int(num_and_operator[i]) - int(num_and_operator[i+2]))
        elif num_and_operator[i+1] == "+":
            num_and_operator[i+2] = str(int(num_and_operator[i]) + int(num_and_operator[i+2]))
        elif num_and_operator[i+1] == "*":
            num_and_operator[i+2] = str(int(num_and_operator[i]) * int(num_and_operator[i+2]))
        elif num_and_operator[i+1] == "//":
            num_and_operator[i+2] = str(int(num_and_operator[i]) // int(num_and_operator[i+2]))
    return num_and_operator[-1]
    

if __name__ == "__main__":
    num_and_operator = []
    
    while True:
        num_oper = input()
        if num_oper == "=":
            break
            
        if num_oper == "/":
            num_oper = "//"
            
        num_and_operator.append(num_oper)
        
    print(calculate_program(num_and_operator))
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments