๐Ÿฅž BE
home

241_Different Ways to Add Parentheses

๋‹ด๋‹น์ž
์™„๋ฃŒ ์—ฌ๋ถ€
Solved
์š”์•ฝ
๋‚ ์งœ
2024/08/29
ํƒœ๊ทธ
๊ทธ๋ฆฌ๋””
๋‚œ์ด๋„
Medium
์ถœ์ฒ˜
LeetCode

์ฝ”๋“œ

import java.util.ArrayList; import java.util.List; class Solution { public List<Integer> diffWaysToCompute(String expression) { List<Integer> results = new ArrayList<>(); // ์ฃผ์–ด์ง„ expression์„ ์ˆœํšŒํ•˜๋ฉด์„œ ์—ฐ์‚ฐ์ž๋ฅผ ์ฐพ์Œ for (int i = 0; i < expression.length(); i++) { char c = expression.charAt(i); // ํ˜„์žฌ ๋ฌธ์ž๊ฐ€ ์—ฐ์‚ฐ์ž๋ผ๋ฉด, ์ขŒ์šฐ๋กœ ๋ฌธ์ž์—ด์„ ๋ถ„ํ•  if (c == '+' || c == '-' || c == '*') { String leftPart = expression.substring(0, i); String rightPart = expression.substring(i + 1); // ๋ถ„ํ• ๋œ ์ขŒ์ธก, ์šฐ์ธก ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์žฌ๊ท€์ ์œผ๋กœ ํ˜ธ์ถœํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ด List<Integer> leftResults = diffWaysToCompute(leftPart); List<Integer> rightResults = diffWaysToCompute(rightPart); // ์ขŒ์ธก ๊ฒฐ๊ณผ์™€ ์šฐ์ธก ๊ฒฐ๊ณผ๋ฅผ ํ˜„์žฌ ์—ฐ์‚ฐ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์กฐํ•ฉ for (int left : leftResults) { for (int right : rightResults) { int currentResult = 0; if (c == '+') { currentResult = left + right; } else if (c == '-') { currentResult = left - right; } else if (c == '*') { currentResult = left * right; } results.add(currentResult); } } } } // ๋งŒ์•ฝ ์—ฐ์‚ฐ์ž๊ฐ€ ์—†๊ณ  ์ˆซ์ž๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ, ์ง์ ‘ ๊ฒฐ๊ณผ์— ์ถ”๊ฐ€ if (results.isEmpty()) { results.add(Integer.parseInt(expression)); } return results; } }
Java
๋ณต์‚ฌ

๋ฌธ์ œ ํ•ด๊ฒฐ ์•„์ด๋””์–ด