Algorithm272 [ 자바스크립트(JavaScript) ] section06 - 2 - 괄호 문자 제거 📍 section06 - 2 - 괄호 문자 제거 소괄호() 사이의 모든 문제를 제외하고 남은 문자만 출력하는 문제다. 나의 풀이 방법은 다음과 같다. 반복문을 선언하고 현재 값이 문자인지 아닌지 검사한다.(정규식) 이때, stack에 아무것도 없다면 answer에 값을 더해준다. 현재 값이 (면 모두 stack에 넣는다. 현재 값이 )인데, 만약 stack[-1]이 (면 stack.pop을 해준다. 선생님은 조금 더 간단하게 푸셨다. (와 문자는 모두 stack.push한다. )가 나오면 (가 나올 때까지 모두 pop해준다. let s = "(A(BC)D)EF(G(H)(IJ)K)LM(N)"; // let s = "(AB(A))B(A)"; console.log(solution(s)); // 나의코드 fun.. 2021. 8. 31. [ 자바스크립트(JavaScript) ] section06 - 1 - 올바른 괄호 📍 section06 - 1 - 올바른 괄호 이번 섹션은 stack과 queue 자료구조를 배운다. 이 문제를 풀고 나서 백준9012 - 괄호를 푸는것을 추천한다. 풀이 방법은 다음과 같다. 입력 값은 오직 (, )만 있다는 것을 알면 조금 더 쉽게 풀 수 있다. (가 나오면 stack에 push한다. )가 나왔을 때 stack이 비어있다면 짝을 지을 괄호가 없기 때문에 false를 return 하면 되고, stack이 비어있지 않다면 (만 있을 것이기 때문에 stack.pop()을 해준다. 반복문이 모두 종료된 이후 stack을 봤을 때 한 개라도 남아있다면 올바른 괄호가 매칭되지 않았기 때문에 false 한개라도 없으면 true를 리턴해준다. let s = ")())" console.log(solut.. 2021. 8. 31. [ 자바스크립트(JavaScript) ] section05 - 8 - 모든 아나그램 찾기 📍 section05 - 8 - 모든 아나그램 찾기 S 문자열에서 T문자열과 아나그램이 되는 S의 부분 문자열의 개수를 구하는 문제이다. 문제가 조금 어려울 수 있는데, 요구사항을 하나씩 구현하면 된다. 이전까지 아나그램 문제를 풀 때는 hash의 특징을 사용했고, 부분 문자열을 구하는 방식은 slidingWindow을 이용하여 풀었다. 여기에 인덱스 관리를 위해 twoPointer 방식만 적용해주면 된다. 나는 while문을 사용해서 풀었는데, 올바른 방향으로 풀었는지 궁금해서 질문을 남겼더니 선생님께서 칭찬해주셨다.( ☺️ ☺️ ) 이것보다 더 짧은 코드로 짜고 싶다는 생각이 들었다. 나는 이렇게 풀었다. 1. 투 포인터를 사용해 rt++가 되면서 sum을 구한다. 2. sum의 길이가 m과 동일하면.. 2021. 8. 30. [ 자바스크립트(JavaScript) ] section05 - 7 - 아나그램 📍 section05 - 7 - 아나그램 Anagram은 두 문자열이 알파벳의 나열 순서를 다르지만 그 구성이 일치하면 두 단어를 아나그램이라고 한다. 이 문제를 hash로 풀면 O(N)으로 간단하게 풀 수 있다. 여기서 아나그램이 성립하지 않는 경우를 생각하면 편하다. 문자열 s1의 원소를 hash값으로 만든다. 비교할 문자열 s2를 반복문으로 순회하면서 아나그램이 되지 않는 경우를 찾는다.(아나그램이 성립하지 않는 경우: s2의 값이 hash값에 존재하지 않는 경우, hash값의 value가 1보다 작은경우) 조건문밖에는 hash의 key값을 -1씩 빼준다. let s1 = "AbaAeCe"; let s2 = "baeeACA"; let s1H = new Map(); console.log(solutio.. 2021. 8. 29. [ 자바스크립트(JavaScript) ] section05 - 6 - 학급회장 📍 section05 - 6 - 학급회장 투표용지를 보고 어떤 기호의 후보가 학급회장이 되었는지 출력하는 문제이다. 이런 유형은 해쉬(hash)로 풀면된다. JS에서 hash 문제는 key:value 형태인 object로 풀면 될 줄 알았는데, ES6 문법에 새로운 자료구조인 Map 형으로 푸는것이 더 쉬웠다. 기본적으로 object의 key는 string | symbol형만 가능하지만 Map의 key는 함수, 객체, 모든 기본 요소를 포함할 수 있다. 또한 object는 nonIterable이라서 for문 대신 Object.entries() | Object.keys() | Object.values()를 사용했지만 Map은 iterable 하기 때문에 for문을 사용할 수 있다. 또한, object의 순.. 2021. 8. 29. 이전 1 ··· 10 11 12 13 14 15 16 ··· 55 다음