์šฐ๊ทœ์ด์ธ์šฐ์œค
Eager To Learn ๐ŸŒŒ
์šฐ๊ทœ์ด์ธ์šฐ์œค
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿก ํ™ˆ
  • ๐Ÿš€ ๊นƒํ—ˆ๋ธŒ
  • โ›… ํƒœ๊ทธ ํด๋ผ์šฐ๋“œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (217)
    • ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS (170)
      • JAVA (82)
      • MYSQL (1)
      • Docker (2)
      • PYTHON (24)
      • LeetCode 150 (39)
      • Algorithm ๊ธฐ๋ฒ• (1)
      • ๋ฐ”ํ‚น๋… (21)
    • ๋ธ”๋กœ๊ทธ ์ด์‚ฌ (0)
    • Error (1)
    • CS (15)
      • DataBase (2)
      • OS (7)
      • Network (1)
      • Spring (1)
      • ์ž๋ฃŒ๊ตฌ์กฐ (3)
      • Java (1)
    • Learned (7)
      • Spring (7)
    • ๊ฐœ๋ฐœ์„œ์  (15)
      • ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (1)
      • ์˜ค๋ธŒ์ ํŠธ - ์กฐ์˜ํ˜ธ (7)
      • ์นœ์ ˆํ•œ SQL ํŠœ๋‹ (7)
    • ํšŒ๊ณ  (2)
hELLO ยท Designed By ์ •์ƒ์šฐ.
์šฐ๊ทœ์ด์ธ์šฐ์œค

Eager To Learn ๐ŸŒŒ

๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/LeetCode 150

[Java] 150. Evaluate Reverse Polish Notation

2023. 8. 30. 10:10

๋ฌธ์ œ ํŒŒ์•…

์—ญ ํด๋ž€๋“œ ํ‘œ๊ธฐ๋ฒ•์— ๋”ฐ๋ฅธ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค.

 

์—ฐ์‚ฐ์ž๋ฅผ ๋งŒ๋‚˜๋ฉด ์ด์ „์— ๋งŒ๋‚ฌ๋˜ ์ˆซ์ž 2๊ฐœ๋ฅผ ์—ฐ์‚ฐํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

์˜ˆ๋กœ, 4 13 5 / + ์˜ ๊ฒฝ์šฐ

 

/ ์—ฐ์‚ฐ์ž๋ฅผ ๋งŒ๋‚˜๊ธฐ ์ง์ „ 13 ๊ณผ 5๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ

 

13 / 5 ๋ฅผํ•ด์ฃผ๊ณ  ๋‚˜์˜จ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ๋„ฃ์–ด์ฃผ๋ฉด 4 2 + ๊ฐ€ ๋œ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  + ์—ฐ์‚ฐ์ž๋ฅผ ๋งŒ๋‚˜๊ธฐ ์ง์ „ 4์™€ 2๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ 4 + 2 ๋ฅผ ํ•œ ๊ฐ’์ธ 6์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋œ๋‹ค.

 


ํ’€์ด

 

1๏ธโƒฃ ์Šคํƒ์„ ์ด์šฉํ•œ ํ’€์ด

๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea

์—ญ ํด๋ž€๋“œ ํ‘œ๊ธฐ๋ฒ•์˜ ์—ฐ์‚ฐ ๋ฐฉ์‹ ์ƒ, ์Šคํƒ์„ ์ด์šฉํ•ด์„œ ํ’€์–ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋ฐ”๋กœ ๋“ค์—ˆ๋‹ค.

์—ฐ์‚ฐ์ž๋ฅผ ๋งŒ๋‚˜๋ฉด, ๊ฐ€์žฅ ๊ทผ์ฒ˜์— ์žˆ๋Š” ์ˆ˜๋ฅผ ๋’ค๋กœ ๋‘๊ณ  ์—ฐ์‚ฐํ•œ ๋‹ค์Œ, ๋‹ค์‹œ ์Šคํƒ์— ๋„ฃ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉด ๋  ๊ฒƒ์ด๋‹ค.

 

import java.util.*;
class Solution {
    Stack<Integer> stack = new Stack<>();
    Set<String> set = new HashSet<>(List.of("+", "-", "/", "*"));

    public int evalRPN(String[] tokens) {
        for (String token : tokens) {
            if (set.contains(token)) {
                int[] info = getInfo();
                if (token.equals("+")) {
                    stack.push(info[0] + info[1]);
                } else if (token.equals("-")) {
                    stack.push(info[0] - info[1]);
                } else if (token.equals("*")) {
                    stack.push(info[0] * info[1]);
                } else if (token.equals("/")) {
                    stack.push(info[0] / info[1]);
                }
            } else {
                stack.push(Integer.parseInt(token));
            }
        }
        return stack.pop();
    }

    private int[] getInfo() {
        int back = stack.pop();
        int front = stack.pop();
        return new int[]{front, back};
    }
}

 

 ๊ฒฐ๊ณผ

 


๐Ÿ“– ํšŒ๊ณ 

์—ญ ํด๋ž€๋“œ ๋ฒ• ์—ฐ์‚ฐ์ด ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ง€๋Š”์ง€ ์ž˜ ํŒŒ์•…ํ–ˆ๋‹ค๋ฉด, ์Šคํƒ์„ ์ด์šฉํ•ด์„œ ์‰ฝ๊ฒŒ ํ’€์ดํ•  ์ˆ˜ ์žˆ๋˜ ๋ฌธ์ œ์˜€๋‹ค.

 

๋‹จ, ์ฝ”๋“œ๋ฅผ ์งœ๋ฉด์„œ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ์˜ ์ค‘๋ณต์ด ์—†๋Š”, ๊ฐ€๋…์„ฑ์ด ์ข‹๊ฒŒ ์งค ์ˆ˜ ์žˆ๋Š”๊ฐ€๋ฅผ ๊ณ ๋ฏผํ–ˆ๋‹ค

 

๋”ฐ๋ผ์„œ getInfo() ๋ฉ”์„œ๋“œ์™€ set ์„ ์ด์šฉํ•œ ์—ฐ์‚ฐ์ž ๊ตฌ๋ถ„ ์กฐ๊ฑด๋ฌธ์„ ๋งŒ๋“ค๊ฒŒ๋˜์—ˆ๋‹ค.

    '๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/LeetCode 150' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Java] 219. Contains Duplicate II
    • [Java] 1. Two Sum
    • [Java] 155. Min Stack
    • [Java] 74. Search a 2D Matrix
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ๊ฐœ๋ฐœ์ž ๊ฟˆ๋‚˜๋ฌด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”