Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- JavaScript
- 힙큐
- Python
- 탐욕법
- 그리디
- 프로그래머스
- heapq
- 스마트팩토리
- 현대
- Algorithm
- 소프티어
- 자바스크립트
- softeer
- programmers
- 딥러닝
- alogorithm
- GAN
- 알고리즘
- 자바
- cs공부
- 백준
- 비전공자
- Java
- 파이썬
- Baekjoon
- MES
- cim
- 토이프로젝트
- re_lunchu
- 현대자동차
Archives
- Today
- Total
eaz_coding
[Programmers] 수식 최대화(Javascript) 본문
문제
문제
https://school.programmers.co.kr/learn/courses/30/lessons/67257
풀이
복잡하게 중위 후위 바꾸기보다 반복문으로 간단하게 할 수 있다.
문제에서 바로 생각나는 대로 풀기보다 더 단순한 풀이를 생각해보자!
주의해야 할 점
1. 리스트 복사 시 [...list]
2. permutation, combination 아직 덜 외워짐 더 외울것
3. 배열 초기화 확인하기
4. Math 주요 기능, Math.abs, Math.floor, Math.ceil, Math.sum 등등
5. .includes는 리스트, .contains는 문자열
function permutation(arr, num){
const res = [];
if(num === 1) return arr.map((v) => [v]);
let cnt = 0;
arr.forEach((v, idx, arr) => {
cnt += 1;
const rest = [...arr.slice(0,idx), ...arr.slice(idx+1)];
const permutations = permutation(rest, num-1);
const attach = permutations.map((p) => [v, ...p]);
res.push(...attach);
})
return res;
}
function cal(a, b, f) {
if (f === "+") {
return a+b;
} else if(f === "-") {
return a-b;
} else {
return a*b;
}
}
function change(ex) {
let new_ex = [];
let tmp = '';
for (let j = 0; j < ex.length; j++){
if (["+", "-", "*"].includes(ex[j])) {
new_ex.push(Number(tmp));
new_ex.push(ex[j]);
tmp = '';
} else {
tmp += ex[j];
}
}
new_ex.push(Number(tmp))
return new_ex;
}
function solution(expression) {
var answer = 0;
let ex = change(expression);
let lst = permutation(["+", "-", "*"], 3);
lst.forEach((el) => {
let stack = [];
let tmp = [...ex];
for (const f of el){
while (tmp.length) {
let t = tmp.shift();
if (f===t){
stack.push(cal(stack.pop(), tmp.shift(), t));
} else {
stack.push(t);
}
}
tmp = [...stack];
stack = [];
}
if (answer < Math.abs(tmp[0])) {
answer = Math.abs(tmp[0]);
}
})
return answer;
}
'eaz_algorithm' 카테고리의 다른 글
[Programmers] 미로 탈출(Python, Javascript, Java) (0) | 2024.06.10 |
---|---|
[Programmers] 행렬 테두리 회전하기(Python, Javascript, Java) (0) | 2024.06.07 |
[Programmers] 괄호 변환(Javascript) (0) | 2024.06.05 |
[Programmers] 줄 서는 방법(JavaScript) (0) | 2024.06.05 |
[Programmers] 무인도 여행(Python, Java, JavaScript) (0) | 2024.06.05 |