일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Next.js13
- JS
- stack문제
- HTML
- 자바스크립트 문제
- 제로베이스
- next13
- 자바스크립트
- 알고리즘문제풀이
- 자바스크립트 알고리즘 문제
- react
- 리액트쿼리
- NPM
- 자바스크립트 연결리스트
- Baekjoon
- CSS
- 프로그래머스
- 자바스크립트 문제풀이
- leetcode문제풀이
- til
- Next
- JavaScript
- 프론트엔드
- leetcode
- 자바스크립트 알고리즘
- 리액트
- 타입스크립트
- lodash
- 자바스크립트코딩테스트
- 자바스크립트 문제 풀이
- Today
- Total
목록분류 전체보기 (225)
코드노트
더보기 문제 설명 일부 언어에서는 배열의 길이를 변경할 수 없으므로 대신 배열 번호의 첫 번째 부분에 결과를 배치해야 합니다. 더 공식적으로, 중복을 제거한 후 k 요소가 있으면 nums의 처음 k 요소가 최종 결과를 보유해야 합니다. 처음 k개 요소를 넘어 무엇을 남겨두는지는 중요하지 않습니다. 숫자의 처음 k 슬롯에 최종 결과를 배치한 후 k를 반환합니다. 다른 어레이에 추가 공간을 할당하지 마십시오. O(1) 추가 메모리를 사용하여 제자리에서 입력 배열을 수정하여 이 작업을 수행해야 합니다. 와..문제 이해가 이렇게 어려운건 또 처음인거같다.. easy문제인데 계속 맞게 문제를 풀었는데 테스트가 통과되지 않았다.. 내가 문제 이해를 못했구나... 배열을 return하려고 했는데 배열을 return하..
더보기 문제 설명 - 같은 짝의 괄호 위치를 찾아 출력 - 입력은 계산 수식으로 주어지며, 괄호의 짝 별 위치를 [시작, 끝] 으로 찾아 2차원 배열 형태로 반환 - 위치 시작 값은 0으로 시작, 하나라도 짝이 맞지 않을 경우 빈 배열을 반환한다. 입력 값 - "(a+b)" - "(a*(b+c)+d)" - "(a*(b+c)+d+(e)" - "(a*(b+c)+d)+e)" - "(a*(b+c)+d)+(e*(f+g))" 출력 값 #1 [ [ 0, 4 ] ] #2 [ [ 3, 7 ], [ 0, 10 ] ] #3 [] #4 [] #5 [ [ 3, 7 ], [ 0, 10 ], [ 15, 19 ], [ 12, 20 ] ] - 2차원 배열에 넣어야하는게 처음에 문제가 어려웠다.. - 빈 배열을 넣고 따로 문제를 계산해..
문제 설명 1, 2, 3을 가진 배열에서 - 1, 2, 3 - 3, 2, 1 - 3, 1, 2 이 세가지를 stack을 통해서 입력 순서대로 숫자를 없앨 수 있는지를 true, false로 반환해야한다. function answer(train) { let stack = []; let num = 0; for (let i = 0; i < train.length; i++) { while (stack.length === 0 || stack[stack.length - 1] < train[i]) { // while (stack의 길이가 0이거나 현재 stack의 가장 끝에 있는 수가 train[i]보다 작을때) stack.push(++num); // 1, 2, 3 을 추가 } if (stack[stack.lengt..
표현식을 설명하려면 값을 알아야한다. 자바스크립트에서 값은 표현식이 평가 되어 생성된 결과를 말한다. 10 + 10 === 20 20은 값이다. 변수에 할당 되는 것이 값이다. 값은 다양한 방법으로 생성할 수 있지만 기본적인 방법은 리터럴 이다. 리터럴 literal은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말한다. 표현식은 값으로 평가될 수 있는 문이다. 즉 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다. 값으로 평가될 수 있는 문은 모두 표현식이다. 그렇기 때문에 문법적으로 생각했을 때 값이 위치할 수 있는 자리에는 표현식도 위치할 수 있다는 것을 의미한다. 문은 프로그램을 구성하는 기본 단위이자 최소 실행 단위이다. // 문의 집합으로 이뤄진 것..
문제설명 더보기 두 개의 정렬된 연결 목록 list1과 list2의 헤드가 제공됩니다. 두 목록을 하나의 정렬된 목록으로 병합합니다. 목록은 처음 두 목록의 노드를 연결하여 만들어야 합니다. 병합된 연결 목록의 헤드를 반환합니다. 문제를 풀기 전부터 ListNode로 정렬 된 연결리스트가 있었다. 순차적으로 node를 가지고와서 연결하면 되는 문제였다. 두개의 노드가 있었는데 값을 비교하면서 새로운 노드에 추가해주었다. 다른 풀이를 보고 빠른 답이 있었는데 이해를 하는데에는 이 풀이가 더 나에게 맞는거 같다. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? nu..
이번 연결리스트는 원형연결리스트의 문제이다. 일반 연결리스트와 다르게 원형으로 연결되어 있다보니깐 신경써야할 게 더 많았다. 문제 설명 입력값 8, 2, 3 출력 값 2, 5, 8, 4, 1, 7, 3, 6 - n = 8, m = 2, k = 3 - 1, 2, 3, 4, 5, 6, 7, 8 로 n의 사람이 있을 때 m = 2번부터 시작하여 k = 3번의 간격으로 이동해서 나오는 숫자들을 출력 해야한다. 그림으로 보면 이렇게 한 방향으로 돌면서 3칸씩 이동하며 숫자를 하나씩 추가하여 순차적으로 출력하면 된다. 연결리스트를 처음 봤을 때는 이해가 안되었는데 이제 어느 정도 이해도가 높아진거 같다. 우선 4가지로 나누었다. 1. n = 8 개의 node를 만들어서 원형 연결리스트를 만든다. 2. 첫 시작 he..
문제는 간단하다 head → 1 → 2 → 3 → null 이렇게 node가 연결되어 있는 연결리스트를 head → 3 → 2 → 1 → null 역순! 반대로 출력하게 수정해야한다. 연결리스트에 대해서 이해가 되어야지만 풀 수 있는 문제였다. 이 문제를 이해하는데 하루가 넘게 걸렸다... 하... 그만큼 성취감은 두배였지만... 제발 바로 이해해줘 내 머리야.. 우선 코드부터 보면서 설명을 해야할거 같다. function answer(ll) { let current = ll.head, prev = null, next; while (current !== null) { next = current.next; current.next = prev; prev = current; current = next; } l..
javaScript란? - 객체(Object)기반의 스크립트 프로그래밍 언어 - ECMAScript 사양을 준수하는 범용 스크립팅 언어 / ECMAScript : 자바스크립트를 표준화하기 위해 만들어짐 - 자바와 직접적인 연관은 없으며, 웹의 동적 동작을 구현하기 위해 제작 - Mocha -> LiveScript -> JavaScript로 명칭 변경 - JavaScript는 JS엔진위에서 수행되며, Google V8, Firefox SpiderMonkey, Edge Chakra 존재 - JavaScript는 서버가 아니라 클라이언트에서 실행 - 인터프리터 방식으로 다른 언어에 비해 유연함 자바스크립트 기본 문법 변수 - 분류된 데이터에 대하여 담을 수 있는 이름을 가진 어떤 공간 변수 선언 방식 - 데..
// Node(): data와 point를 가지고 있는 객체 function Node(data) { this.data = data; this.next = null; } // CircularLinkedList(): head와 length를 가지고 있는 객체 function CircularLinkedList() { this.head = null; this.length = 0; } // size(): 연결 리스트 내 노드 개수 확인 CircularLinkedList.prototype.size = function () { return this.length; }; // isEmpty(): 객체 내 노드 존재 여부 파악 CircularLinkedList.prototype.isEmpty = function () { ..
Valid Parentheses 유효한 괄호 더보기 문제설명 '(', ')', '{', '}', '[' 및 ']' 문자만 포함하는 문자열이 주어지면 입력 문자열이 유효한지 확인합니다. 다음과 같은 경우 입력 문자열이 유효합니다. 열린 브래킷은 동일한 유형의 브래킷으로 닫아야 합니다. 열린 브래킷은 올바른 순서로 닫아야 합니다. 모든 닫기 대괄호에는 동일한 유형의 해당 여는 대괄호가 있습니다. - 이번 문제는 stack을 활용하는 문제이다. - 간단하게 말하면 입력값을 넣어놓고 입력값에 맞는 값들을 빼면서 length를 0으로 만들어내면 된다. var isValid = function (s) { const stack = []; for (let i = 0; i < s.length; i++) { if (s[i..