일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 모던 자바스크립트 Deep Dive TIL
- frontend roadmap study
- KDT 프로그래머스 데브코스 프론트엔드
- react customHook 예시
- 백준 js
- K_Digital Training
- 프로그래머스 K_Digital Training
- Frontend Roadmap
- TypeScript 문법 소개
- 모던 javascript Deep Dive
- Vue3 Router
- 프로그래머스 데브코스
- 모던 자바스크립트 딥다이브
- 모던 자바스크립트 TIL
- react 프로젝트 리팩토링
- 인프런 자바스크립트 알고리즘 문제풀이
- 프로그래머스 K_Digital Training 프론트엔드
- 개발자 특강
- 우테캠 회고록
- KDT 프로그래머스
- Vue3
- 모던 자바스크립트 Deep Dive
- useEffect return
- 리팩토링 회고
- 백준 node.js
- 프로그래머스 데브코스 프론트엔드
- 프로그래머스 데브코스 프론트엔드 TIL
- useRef 지역 변수
- 투포인터알고리즘 js
- 머쓱이
- Today
- Total
목록전체 글 (257)
프론트엔드 개발자의 기록 공간
🚩 괄호 문자 제거 (스택) 📖 문제 설명 : 입력된 문자열에서 소괄호 ( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램을 작성하세요. 💡Tip. 제목 그대로 스택 이용 function solution(s) { let answer = '' let stack = [] let str = [] for (let x of s) { stack.push(x) } for (let i = 0; i < s.length; i++) { let tmp = stack.pop() // 여는 괄호 나올 시 if (tmp === '(') { // 저장된 str 배열에서 닫는 괄호를 만날 때 까지 요소 제거 // 닫는 괄호 개수 만큼 반복문을 수행하기 때문에 시간 복잡도에 영향은 크게 미치지 않는다. while..
🚩 모든 아나그램 찾기 📖 문제 설명 : S문자열에서 T문자열과 아나그램이 되는 S의 부분문자열의 개수를 구하는 프로그램을 작성하세요. 아나그램 판별시 대소문자가 구분됩니다. 💡 해쉬, 투포인터, 슬라이딩 윈도우의 기법이 사용된다. function solution(S, T) { let answer = 0 let map1 = new Map() let map2 = new Map() // 초기 슬라이딩 윈도우 크기 세팅 // 비교 대상 고정된 T의 문자열 길이 만큼 Map set for (let i = 0; i < T.length; i++) { if (map1.has(S[i])) { map1.set(S[i], map1.get(S[i]) + 1) } else { map1.set(S[i], 1) } if (map..
🚩 연속 부분 수열 2 -> 투포인터 알고리즘 📖 문제 설명 : 여러 개의 수로 이루어진 수열이 주어집니다. 이 수열에서 연속부분수열의 합이 특정숫자 M이하가 되는 경우가 몇 번 있는지 구하는 프로그 램을 작성하세요. 만약 M=5이고 수열이 다음과 같다면 [1, 3, 1, 2, 3] 합이 5이하가 되는 연속부분수열은 {1}, {3}, {1}, {2}, {3}, {1, 3}, {3, 1}, {1, 2}, {2, 3}, {1, 3, 1}로 총 10가지입니다. input : M = 5 , arr = [1, 3, 1, 2, 3] => output : 10 input : M = 6 , arr = [1, 1, 1, 1, 1] => output : 15 💡Tip. 투포인터 알고리즘으로 이중 for 문으로 전체 탐색을..
🚩 연속 부분 수열 1 -> 투포인터 알고리즘 📖 문제 설명 : 여러 개의 수로 이루어진 수열이 주어집니다. 이 수열에서 연속 부분 수열의 합이 특정 숫자 M이 되는 경우가 몇 번 있는지 구하는 프로그램을 작성하세요. 만약 M=6이고 수열이 다음과 같다면 [1, 2, 1, 3, 1, 1, 1, 2] 합이 6이 되는 연속 부분 수열은 {2, 1, 3}, {1, 3, 1, 1}, {3, 1, 1, 1}로 총 3가지입니다. input : M = 6 , arr = [1, 2, 1, 3, 1, 1, 1, 2] => output : 3 input : M = 6 , arr = [1, 1, 1, 2, 4] => output : 1 💡Tip. 투포인터 알고리즘으로 이중 for 문으로 전체 탐색을 하면 O(n^2)이 되기..
✍ Babel과 Webpack을 이용한 ES6+/ES.NEXT 개발 환경 구축 크롬, 사파리, 파이어폭스, 엣지 같은 에버그린 브라우저의 ES6 지원율은 약 98%로 거의 대부분 ES6 사양을 지원한다. 하지만 IE 11의 지원율은 11%다. 그리고 매년 새롭게 도입되는 버전은 브라우저에 따라 지원율이 제각각이다. 따라서 최신 ECMAScript 사양을 사용하여 프로젝트를 진행하려면 IE를 포함한 구형 브라우저에서 문제 없이 동작시키기 위한 개발 환경 구축이 필요하다. ✍ Babel Babel은 자바스크립트 컴파일러이다. Babel은 현재 및 이전 브라우저 또는 환경에서 ECMAScript 2015+(이상)의 코드를 이전 버전의 JavaScript로 변환하는 데 주로 사용되는 도구이다. 다음 예제에서는 ..
모듈이란 애플리케이션을 구성하는 개별적 요소로서 재사용 가능한 코드 조각을 말한다. 일반적으로 모듈은 기능을 기준으로 파일 단위로 분리한다. 모듈이 성립하려면 모듈은 자신만의 파일 스코프(모듈 스코프)를 가질 수 있어야 한다. 모듈은(변수, 함수, 객체 등)은 기본적으로 비공개 상태다. 즉, 자신만의 파일 스코프를 갖는 모듈의 자산은 캡슐화되어 다른 모듈에서 접근할 수 없다. 즉, 모듈은 개별적 존재로서 애플리케이션과 분리되어 존재한다. 하지만 완전히 분리되어 개별적으로 존재하면 재사용이 불가능하므로 모듈은 공개가 필요한 곳에 한정하여 명시적으로 공개가 가능하다. 이를 export라 한다. 공개된 모듈의 자산은 다른 모듈에서 재사용할 수 있다. 공개된 모듈을 이용하는 모듈을 모듈 사용자라 한다. 모듈 사..
에러가 발생하지 않은 코드를 작성하는 것을 불가능하다. 따라서 에러는 언제나 발생할 수 있다. 발생한 에러에 대해 대처하지 않고 방치하면 프로그램은 강제 종료된다. console.log('[Start]'); foo(); // ReferenceError: foo is not defined // 발생한 에러를 방치하면 프로그램은 강제 종료된다. // 에러에 의해 프로그램이 강제 종료되어 아래 코드는 실행되지 않는다. console.log('[End]'); 직접적으로 에러를 발생하지 않는 예외적인 상황이 발생할 수도 있다. 예외적인 상황에 적절하게 대응하지 않으면 에러로 이어질 가능성이 크다. // DOM에 button 요소가 존재하지 않으면 querySelector 메서드는 에러를 발생시키지 않고 null을..