일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바스크립트 연결리스트
- HTML
- 프로그래머스
- lodash
- 리액트
- 자바스크립트 문제 풀이
- react
- 프론트엔드
- JS
- 자바스크립트
- CSS
- leetcode
- 자바스크립트 알고리즘 문제
- Next.js13
- 리액트쿼리
- 제로베이스
- next13
- stack문제
- leetcode문제풀이
- NPM
- JavaScript
- Baekjoon
- 타입스크립트
- 자바스크립트코딩테스트
- 자바스크립트 문제풀이
- 자바스크립트 문제
- Next
- 알고리즘문제풀이
- 자바스크립트 알고리즘
- til
- Today
- Total
목록Code note (226)
코드노트
문제 설명 문자열 s가 주어지면 문자를 반복하지 않고 가장 긴 부분 문자열의 길이를 찾습니다. ex ) 1# s = "abcabcbb" 2# s = "bbbbb" 3# s = "pwwkew" 문제는 간단하다 s문장에서 문자를 반복하지 않고 각각 다른 문자열로만 되어 있는 문자의 길이를 반환하면 된다. var lengthOfLongestSubstring = function (s) { let strLth = 0; let current = ""; for (let i = 0; i < s.length; i++) { current = current.substring(current.indexOf(s[i]) + 1); current += s[i]; console.log(current); if (current.lengt..
더보기 문제 설명 일부 언어에서는 배열의 길이를 변경할 수 없으므로 대신 배열 번호의 첫 번째 부분에 결과를 배치해야 합니다. 더 공식적으로, 중복을 제거한 후 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 () { ..