본문 바로가기

2. 우당탕탕 개발자111

2021.8.13 TIL (stack, queue 를 이용한 알고리즘 3) 목차 1. Prefix 연산 2. 쇠 막대기 절단 개수 3. 공주 구하기 Postfix 연산 (stack) 해당 연산을 구현하는 함수 만들기. (3 * (5 + 2))- 9를 postfix로 표현하면 352+*9-다. 위의 예를 postfix 식으로 표현하는 과정은 다음과 같다. (3 * (5 + 2)) - 9 (3 * (5 + 2)) 9 - 3 (5 + 2) * 9 - 3 5 2 + * 9 - function postfix(str) { let answer; // code here; return answer; } let str = '352+*9-'; console.log(postfix(str)); //12 답) postfix 로 구현된 식을 stack을 이용해서 원래의 식(infix)로 표현해보자 [] .. 2021. 8. 13.
2021.8.10 TIL 괄호 여닫힘 문제 _ 스택 알고리즘 올바른 괄호 괄호가 잘 닫혀 있는지 체크하는 함수 function solution(str) { let answer; // code here return answer; } let ex1 = '(()(()))(()' console.log(solution(ex1)); // false let ex2 = '(()()))' console.log(solution(ex2)); // false let ex3 = '(())()' console.log(solution(ex3)); // true 답) function solution(str) { let open = '(', close = ')'; let sum = 0; for(let el of str) { if(sum < 0) return false; el === open ?.. 2021. 8. 10.
2021.8.8 TIL 학급회장, 아나그램 (해쉬, 투포인터, 슬라이더) 학급 회장 (해쉬) A, B, C, D, E 후보 중에서 가장 많이 뽑힌 후보는 누구인가? function solution(str) { let answer; // code here; return answer; } let str = "BACBACCACCBDEDE"; console.log(solution(str)); // C 답) object 를 이용 object 의 keys 배열 구하기 => Object.keys(obj) object 의 values 배열 구하기 => Object.values(obj) object의 특정 value값을 갖는 key를 구하기 => Object.keys(obj).find(key => obj[key] === value) function solution(str) { let answ.. 2021. 8. 8.
2021.8.7 TIL 공통 원소, 연속 부분수열 합, k일 연속 최대 매출합 공통 원소 A, B 두 개의 집합이 주어지면 두 집합의 공통 원소를 추출하여 오름차순으로 출력 function solution(a, b) { let answer; // code here; return answer; } let a = [1, 3, 9, 5, 2]; let b = [3, 2, 5, 7, 8]; console.log(solution(a, b)); // [2,3,5] 답) 중복을 허용하지 않는 Set()을 이용 function solution(a, b) { let answer = []; let mySet = new Set(a); for(let el of b) { mySet.has(el) ? answer.push(el) : null; } return answer.sort((a, b) => a - .. 2021. 8. 7.
2021.8.6 TIL 졸업선물,k번째합,두 배열 합치기 졸업 선물 학생에게 한정된 예산으로 가장 많은 선물을 할 수 있는 경우의 수는? 50% 할인 쿠폰을 한 번만 쓸 수 있다. 배송비 적용 안됨 상품값과 배송값으로 이루어진 배열이 주어진다. 매개변수는 배열과 선생님의 예산이다. function solution(arr, num) { let answer; // code here; return answer; } let example = [[6, 6], [2, 2], [4, 3], [4, 5], [10, 3]]; console.log(solution(example, 28)); //4 틀린 답) 최대 상품의 값을 구하고 그 값을 50% 할인한다. 그 후 상품값과 배송값을 더 한 배열을 만든다. 그 배열을 작은 수 순으로 정렬하고 예산 안에서 가능한 경우를 구한다. .. 2021. 8. 7.
2021.8.4 TIL 자리수의 합, 뒤집은 소수, 멘토링 경우의 수 자릿수의 합 N개의 자연수가 입력되면 각 자릿수의 합을 구하고, 그 중 합이 최대인 자연수를 출력. 만약 자릿수의 합이 같을 경우 원 숫자가 큰 것을 리턴한다. function solution(arr) { let answer; // code here; return answer; } let example = [128, 460, 603, 40, 521, 137, 123] console.log(solution(example)); //137 답1) 각 배열의 원소들을 돌면서 문자열로 변환 후 한자리씩 쪼개어 최대 합을 구한다. function solution(arr) { let answer= max = Number.MIN_SAFE_INTEGER; for(let el of arr) { let str = '' + .. 2021. 8. 4.