본문 바로가기

반응형

분류 전체보기

(644)
프로그래머스 : 단어 퍼즐 JavaScript 다익스트라로 접근하면 편하다. const INF = 987654321; function solution(strs, t) { const n = t.length; var digit = Array.from({length: n},() => INF); const q = []; q.push([-1,0]); while(!(q.length === 0)) { const [index, count] = q.shift(); for(let str of strs) { let len = str.length; if(index + 1 + len > n ) { continue; } const subStr = t.substring(index + 1 ,index + 1 + len); if(str === subStr && digit[inde..
바인딩 되지 않는 this 화살표 함수가 나오기 전까지는, 모든 새로운 함수는, 어떻게 그 함수가 호출되는지에 따라 this값을 정의했습니다. 이는 객체 지향 스타일로 프로그래밍할 때 별로 좋지않습니다. function Person() { this.age = 0; setInterval(function growUp() { this.age++; }, 1000); } var p = new Person(); 비엄격 모드에서는 setInterval 안의 this와 Person객체안의 this는 다릅니다. 엄격모드란? https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Strict_mode Strict mode - JavaScript | MDN 엄격 모드는 평범한 JavaScrip..
정규 표현식과 일치하는 값 해체하기 function parseProtocol(url) { var parsedURL = /^(\w+)\:\/\/([^\/]+)\/(.*)$/.exec(url); if (!parsedURL) { return false; } console.log(parsedURL); // ["https://developer.mozilla.org/en-US/Web/JavaScript", "https", "developer.mozilla.org", "en-US/Web/JavaScript"] var [, protocol, fullhost, fullpath] = parsedURL; return protocol; } console.log(parseProtocol('https://developer.mozilla.org/en-US/Web/J..
javascript: 상속 (extends) 특정 Api를 호출해서 상속하는 Api가 있다면 기본 뼈대는 비슷한고 Api별로 반환값을 달리하는 예제를 만들어보자. class Api { url: string; ajax: XMLHttpRequest; constructor(url: string) { this.url = url; this.ajax = new XMLHttpRequest; } protected getRequest(): AjaxResponse { this.ajax.open('GET', this.url, false); this.ajax.send(); return JSON.parse(ajax.response); } } class NewsFeedApi extends Api { getData(): NewsFeed[] { return this.getRe..
TypeScript: typeAlias vs interface 타입스크립트에서는 타입을 명시하기위해서 두가지 방법을 사용한다. 문법적으로 비슷하지만 약간다르고 지원하는 내용도 차이가 있다. 다음과 같은 News와 NewsFeed 타입으로 명시하겠다. typeAlias type News = { id: number; time_ago: string; title: string; url: string; user: string; content: string; } type NewsFeed = & News { commnets_count: number; points: number; read?: boolean; } interface interface News { id: number; time_ago: string; title: string; url: string; user: stri..
TypeScript: 제너릭 TypeScript를 통해서 반환값의 타입을 명시해 줄 수 있습니다. 반환값은 REST API이고 그값에 따라 Json이 다음과 같은 객체를 나타낸다고 생각합니다. a API {a : string, b : string} b API {c : string, d : number} 일반적으로 타입스크립트는 명시해줘야 하기 때문에 다음과 같은 함수를 작성합니다. type A = { a: string; b: string; } type B = { c: string; d: number; } function getData(url: string): A | B { ajax.open('GET', url, false); ajax.send(); return JSON.parse(ajax.response); } cont b_API ..
프로그래머스 : 트리 트리오 중간값 javascript 문제풀이 기본적으로 javascript는 코딩 테스트 문제를 푸는것에 적절한 언어가 아닙니다. 해당문제는 BFS탐색을 필요로하는 문제입니다. 1. 임의이 node에서 가장먼 node를 구합니다. 그것을 x라고 하겠습니다. 2. x에서 가장 먼 노드를 구합니다. 그것을 y라고 하겠습니다. 이때 발견된 y가 2이상이라면 x - y의 길이를 반환합니다. 3. 발견된게 1개라면 1. 2. 를 진행하고 그래도 1개라면 distance -1 을 진행합니다. // 트리의 지름을 구하는 방법은 그리디를 이용해서 풀수가 있다. // 1. 임의의 노드 a 에서 가장 깊은 노드 b를 DFS or BFS를 이용해서 구한다. // 2. b노드에서 가장깊은 노드 c를 찾으면 b-c가 트리의 지름이 된다. class Queue {..
프로그래머스 : 줄서는방법 JavaScript 문제 설명 n명의 사람이 일렬로 줄을 서고 있습니다. n명의 사람들에게는 각각 1번부터 n번까지 번호가 매겨져 있습니다. n명이 사람을 줄을 서는 방법은 여러가지 방법이 있습니다. 예를 들어서 3명의 사람이 있다면 다음과 같이 6개의 방법이 있습니다. [1, 2, 3] [1, 3, 2] [2, 1, 3] [2, 3, 1] [3, 1, 2] [3, 2, 1] 사람의 수 n과, 자연수 k가 주어질 때, 사람을 나열 하는 방법을 사전 순으로 나열 했을 때, k번째 방법을 return하는 solution 함수를 완성해주세요. 제한사항 n은 20이하의 자연수 입니다. k는 n! 이하의 자연수 입니다. 입출력 예 nkresult 3 5 [3,1,2] 입출력 예시 설명 입출력 예 #1 문제의 예시와 같습니다. 풀이방..

반응형