[์คํ] 4. ํ์์ ๊ณ์ฐ
์ค๋ช
ํ์์ฐ์ฐ์์ด ์ฃผ์ด์ง๋ฉด ์ฐ์ฐํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
๋ง์ฝ 3*(5+2)-9 ์ ํ์์ฐ์ฐ์์ผ๋ก ํํํ๋ฉด 352+*9- ๋ก ํํ๋๋ฉฐ ๊ทธ ๊ฒฐ๊ณผ๋ 12์ ๋๋ค.
์ ๋ ฅ
์ฒซ ์ค์ ํ์์ฐ์ฐ์์ด ์ฃผ์ด์ง๋๋ค. ์ฐ์ฐ์์ ๊ธธ์ด๋ 50์ ๋์ง ์์ต๋๋ค.
์์ 1~9์ ์ซ์์ +, -, *, / ์ฐ์ฐ์๋ก๋ง ์ด๋ฃจ์ด์ง๋ค.
์ถ๋ ฅ
์ฐ์ฐํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
์์ ์ ๋ ฅ 1
352+*9-
์์ ์ถ๋ ฅ 1
12
<<ํ์ด>>
import java.util.Scanner;
import java.util.Stack;
class Main {
private int solution(String str) {
Stack<Integer> stack = new Stack<>();
for (char x : str.toCharArray()) {
if (Character.isDigit(x)) stack.push(x - 48);
else {
int rt = stack.pop();
int lt = stack.pop();
if (x == '+') stack.push(lt + rt);
else if (x == '-') stack.push(lt - rt);
else if (x == '*') stack.push(lt * rt);
else if (x == '/') stack.push(lt / rt);
}
}
return stack.get(0);
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
String str = in.next();
System.out.println(T.solution(str));
}
}
์ด ๋ฌธ์ ๋ ํ์์ ์ฐ์ฐ์ด๋ผ๊ณ ํด์ ์๋ ์ค์์ ์ฐ์ฐ์ด ๋ํดํธ์ด๋ฉด ํ์์์ ์ฐ์ฐ๊ธฐํธ๋ฅผ ๊ณ์ฐํ๋ ์ซ์์ ๋ง์ง๋ง์ ๋๋ค.
ํ์ด๋ฐฉ์
์ฐ์ , toCharArray๋ฅผ ํ์ฉํด์ ์ซ์์ด๋ฉด stack์ ๋ด์์ค๋ค. ๊ทธ๋ฌ๋ค๊ฐ ์ฐ์ฐ์๋ฅผ๋ง๋๊ฒ ๋๋ฉด push๋ฅผ ํตํด ๋จผ์ ๋์ค๋ ๊ฐ์ ์ค๋ฅธ์ชฝ์ ์๋ค๊ณ ํด์ rt์ ๋ฃ์ด์ฃผ๊ณ ๊ทธ ๋ค์ ๊ฐ์ lt์ ๋ฃ์ด์ค๋ค. ๊ทธ๋ ๊ฒ ํด์ if ๋ฌธ์ผ๋ก ๊ทธ ์ฐ์ฐ์์ ์กฐ๊ฑด์ ๋ง๊ฒ ๊ตฌํ๊ณ ๋ค์ stack์ ๋ฃ์ด์ค๋ค.
์ด๋ฐ์์ผ๋ก ๋ฐ๋ณตํด์ ๋ฌธ์ ๋ฅผ ํธ๋ ๋ฌธ์ ์ด๋ค. !!
์ฌ๊ธฐ์ pop์ ๋ ๋ฒ ํด๋ฒ๋ฆฌ๋ฉด ์ ๋์ง ์๋!? stack ์ ๊ฐ์ด ์์ผ๋ฉด ์ด๋ป๊ฒ ?? ๋ผ๊ณ ์๊ฐํ ์๋ ์์ง๋ง ์ฌ์ค์ ์ฐ์ฐํ๊ธฐ ์ํด์๋ ๋ฌด์กฐ๊ฑด ๋ ๊ฐ์ ํผ์ฐ์ฐ์๊ฐ ๋ค์ด๊ฐ๊ธฐ ๋ง๋ จ์ด๋ค. ๊ทธ๋ ๊ฒ ์๊ฐํ๋ฉด ๋ฃ์ด์ค ๋ฌธ์์ด์ด ์ค์์์ ํ์์์ผ๋ก ๋ง๋ค์๊ธฐ์, ์ด๋ฌํ ํ์ด๋ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ด๋ค.
์ฒ์ ๋ณด๋ ํํ์๊ณ ์ด๋ฌํ ๋ฐฉ์์ด ๋์ค๋ฉด ์ด ๋ ผ๋ฆฌ์ ํ๋ฆ์ ๊น๋จน์ง ๋ง๊ณ ์ฌ์ฉํ์!!
<<์ถ๊ฐ ๊ณต๋ถ>>
'0' '1' ๊ฐ์ char๋ ์์คํค์ฝ๋๋ก ํ์ ๋ '0'->48 ์ด๊ณ '1' -> 49 ์ด๋ค. ๋ฐ๋ผ์ ์ด๋ฅผ ์ง์ง ์ซ์๋ก ๋ฐ๊พธ๊ธฐ ์ํด์๋ -48 ์ ํ๋ฉด ๋๋ค!
'์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ] 6. ๊ณต์ฃผ ๊ตฌํ๊ธฐ (1) | 2024.01.13 |
---|---|
[์คํ] 5. ์ ๋ง๋๊ธฐ (1) | 2024.01.13 |
[์คํ] 3. ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ (1) | 2024.01.10 |
[์คํ] 2. ๊ดํธ๋ฌธ์์ ๊ฑฐ (1) | 2024.01.08 |
[์คํ] 1. ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2024.01.07 |
๋๊ธ