전체 글 (644) 썸네일형 리스트형 javascript: 프로토타입 체이닝 const c1 = { name: 'C1', color: 'red', }; const c2 = { name: 'C2', width: 300, }; const c3 = { name: 'C3', height: 100, }; c1.__proto__ = c3; c3.__proto__ = c2; console.log(c1.width); //300 자바사크립트에서는 현재 내부객체에서 호출 값을 찾지못하면 __proto__에서 그 값을 추가적으로 찾는다. 다음과 같이 체이닝 기법으로 연결해두면 값을 찾게 되는 매커니즘이다. 이렇게 프로토타입을 연결시켜서 재활용 할 수 있다. 함수의 프로토타입 function Foo(name) { this.name = name; } Foo.prototype.lastName = 'Woo.. JavaScript 모든 this의 바인딩 상황 프론트 엔드를 공부를 시작하면서 this에 관련된 상황에 대해서 어떻게든 사용하고 있었지만 그것은 감으로 사용하고 있었고 정확하게 이렇게 될거야라는 확신은 없는채 사용해 왔다. 이렇게 사용하면 되겠지.. 하지만 특수한 경우에는 생각되로 바인딩 되지 않는 경우가 있는데 그러한 경우를 모아서 정리해볼려고 한다. JavaScript에서는 this는 상황에 따라 다른 표현을 가지고 있다. 상황에 따른 this가 어디로 할당 되는지 다루어 볼려고 한다. 기본 적으로 this는 함수내에서 암묵적으로 전달되는 변수이다. 1. 객체의 메소드를 호출할 때 var Obj = { name: 'this', func: function() { console.log(this); } }; Obj.func(); // { name: '.. [프로그래머스] 고양이 사진 검색 사이트 https://programmers.co.kr/skill_check_assignments/4 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 과제 전형 문제인데 알고리즘과 다르게 정답은 없고 주어진 시간안에 해당 요구조건을 충족시키는 문제이다. 깃허브에 소스코드는 올려두었습니다. https://github.com/Hongjeongmin/webJsCode/tree/cat_search Hongjeongmin/webJsCode Js 프론트 프레임워크 기본 구조 구현. Contribute to Hongjeongmin/webJsCode development by c.. 프로그래머스 : 블록게임 JavaScript 논리흐름이 틀리지 않았는데 계속 틀렷다 나와서 코드만 몇번 본줄 모르겠다.. 당연히 실수가 없을거라 생각했던 함수에 +가 되야할게 -가 박혀있었다.. 그런데도 예제가 너무쉽게통과해서 의심할 수 없는 수준.. 문제풀이 1. 도형 12가지중 위와 같은 뒤집어진 모양은 위에서 블록이 내려오기에 제거할 수가없다. 따라서 블록으로 제거할 수 있는 도형은 5개로 제한된다. 2. 앞선 순서로 제거하지 못했지만 다음 순서에서 제거되서 앞선 순서의 도형이 제거되는 경우가있다. (이경우에는 다시 한번더 탐색) 3. 우선적으로 제거할 블록위에 다른 블록이 있으면 제거할 수 없지만. 직각 사각형의 조건으로 특정 블록의 x위치 위에는 탐색하지 않아도 된다. 아래의 경우에는 왼쪽 첫번째 순서의 위로 있는 도형은 생각안해도 된다... 프로그래머스 : 동굴탐험 JavaScript class Queue { constructor() { this._arr = []; } push(value) { this._arr.push(value); } pop() { return this._arr.shift(); } isEmpty() { return this._arr.length === 0; } } var Edge; var beforePath; var visit; function solution(n, path, order) { Edge = Array.from({length: n},() => []); beforePath = Array(n); visit = Array(n).fill(false); for(let o of order) { beforePath[o[1]] = o[0]; } if(beforePat.. 프로그래머스 : 가사검색 JavsScript 자료구조 : 트라이 1년전 정리했던 자료구조이다. Java로 짜여져있는 내코드를 참조했다. https://redbinalgorithm.tistory.com/167?category=880023 트라이(Trie) : JAVA / 백준 5052 트라이 알고리즘 일반 적인 정수들은 O(1) 시간내에 비교가 가능합니다 . 1==1 ,123>4 처럼 단순연산으로 접근 할 수 있습니다. 하지만 String 같은경우에는 "ABC" == "ABCD" 를 고려하기 위해서는 최대 문 redbinalgorithm.tistory.com 트라이 알고리즘은 특정 자료안에 key가 존재하는가 여부를 O(NM) 안에 알 수 있는 가장 빠른 자료구조이다(N은 쿼리수) 이러한 특성때문에 해당 프로그래머스 문제에서도 쿼리수가 많은 경우에도.. Array.from 과 Array().fill 차이점. 배열을 초기화 할때 두가지 방법을 사용한다. Array(N).fill(변수); Array.from({length:N},()=> 변수)); 이때 fill 안의 변수는 하나고 밑에는 변수가 그 때마다 생성된다. Js에서 C언어의 포인터 개념을 빌리자면 위쪽 변수의 주소번지가 1000이라면 모든 배열에 대한 같은 주소지로 초기화된다. 밑에는 변수가 그때마다 1001 1005 1009 식으로 할당 된다. 이차이는 new Class()를 생성하고 내부객체를 변경할 때 fill로 초기화 되어있는 배열은 같은 주소를 참조함으로 주의하자. 프로그래머스 : 무지의 먹방 라이브 JavaScript 각각의 들어있는 음식의 양을 막대형 그래프로 표현해 본다면 O O O O O O 이것을 크기가 작은 순으로 정렬하다면 O O O O O O 큰것 부터 먹더라도 k값이 전체 음식의 수보다 앞선다면은 사이클 한번이 돌고나서는 남은 K수는 K-len(음식의 수)가 될것이고 그래프의 모양은 다음과 같이된다. O O O 이것에서 아이디어를 얻어서 문제를 풀면 다음과 같은 코드가 된다. 추가팁으로는 1~n 차례대로 음식을 순회하기 때문에 index순서대로 뽑아야한다 (문제에서는 다음 음식에 가장 많이 남은 음식을 선택한다고했다. 예를들어 5번 음식을 뽑앗으면 6~N, 1~4번중 가장 많이 남은것을 뽑는 다는 뜻 따라서 다음과 같이 index로 정렬하면 정답이 나온다.) function solution(food_ti.. 이전 1 ··· 5 6 7 8 9 10 11 ··· 81 다음