zoaseo
To Infinity And Beyond
zoaseo
전체 방문자
오늘
어제
  • 분류 전체보기 (763)
    • 개발이 좋아서 (381)
      • SAP가 좋아서 (3)
      • Java가 좋아서 (42)
      • Spring이 좋아서 (50)
      • JPA가 좋아서 (0)
      • QueryDSL이 좋아서 (26)
      • Docker가 좋아서 (7)
      • Redis가 좋아서 (7)
      • AWS가 좋아서 (5)
      • CI/CD가 좋아서 (6)
      • Troubleshooting이 좋아서 (4)
      • Kotlin이 좋아서 (7)
      • SQL이 좋아서 (6)
      • HTTP가 좋아서 (21)
      • JavaScript가 좋아서 (30)
      • TypeScript가 좋아서 (6)
      • Vue가 좋아서 (21)
      • Flutter가 좋아서 (61)
      • React가 좋아서 (20)
      • Redux(React)가 좋아서 (2)
      • Angular가 좋아서 (22)
      • HTML이 좋아서 (9)
      • CSS가 좋아서 (15)
      • PHP가 좋아서 (9)
      • Illustrator가 좋아서 (2)
    • 노력이 좋아서 (169)
    • 결과물이 좋아서 (14)
    • 코딩연습이 좋아서 (168)
      • 이론이 좋아서 (62)
      • SQL이 좋아서 (90)
    • 유용한 사이트가 좋아서 (28)
    • Github (2)

인기 글

티스토리

hELLO · Designed By 정상우.
zoaseo

To Infinity And Beyond

코딩연습이 좋아서/이론이 좋아서

Stack, Queue(자료구조) - 후위식 연산(postfix)

2024. 12. 6. 18:29

설명

후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요.

만약 3*(5+2)-9 을 후위연산식으로 표현하면 352+*9- 로 표현되며 그 결과는 12입니다.

입력

첫 줄에 후위연산식이 주어집니다. 연산식의 길이는 50을 넘지 않습니다.

식은 1~9의 숫자와 +, -, *, / 연산자로만 이루어진다.

출력

연산한 결과를 출력합니다.

예시 입력 1 

352+*9-

예시 출력 1

12

 

import java.util.Scanner;
import java.util.Stack;

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        String s = sc.next();
        Stack<Integer> stack = new Stack<>();
        for (char c : s.toCharArray()) {
            int lt;
            int rt;

            if (Character.isDigit(c)) {
                stack.push(Integer.valueOf(String.valueOf(c)));
            } else {
                rt = Integer.parseInt(String.valueOf(stack.pop()));
                lt = Integer.parseInt(String.valueOf(stack.pop()));
                int result = 0;
                if (c == '+') result = lt + rt;
                else if (c == '-') result = lt - rt;
                else if (c == '*') result = lt * rt;
                else if (c == '/') result = lt / rt;
                stack.push(result);
            }
        }

        System.out.println(stack.get(0));
    }
}

'코딩연습이 좋아서 > 이론이 좋아서' 카테고리의 다른 글

Stack, Queue(자료구조) - 공주 구하기  (0) 2024.12.06
Stack, Queue(자료구조) - 쇠막대기  (0) 2024.12.06
Stack, Queue(자료구조) - 크레인 인형뽑기(카카오)  (0) 2024.12.06
Stack, Queue(자료구조) - 괄호문자제거  (0) 2024.12.06
Stack, Queue(자료구조) - 올바른 괄호  (0) 2024.12.06

    티스토리툴바