본문 바로가기

분류 전체보기365

[스택] 후위식 연산 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 후위 연산식이 주어지면 연산한 결과를 출력한다. 만약 3 * ( 5 + 2 ) - 9 를 후위 연산식으로 표현하면 3 5 2 + * 9 - 로 표현되며 그 결과는 12이다. 👉 입력 첫 번째 줄에 후위 연산식이 주어진다. 이때 연산식의 길이는 50을 넘지 않으며 1 ~ 9의 숫자와 +, -, *, / 의 네 가지 연산자로만 이루어진다. 👈 출력 연산한 결과를 출력한다. 💡 사용된 개념 후위식 연산(postfix) 피연산자가 먼저 쓰이고 그 뒤로 연산자가 나오는 형태이다. 예를 들어 5 + 2를 후위표기식으로 바꾼다면 5 2 +이다. 후위 표기식을 계산하는 방법은 다음과 같다. 3 5 2 + * 9 - 첫 번째 연산자 + 의 앞에 있는.. 2021. 12. 26.
[TS] 인터페이스 타입스크립트 입문 - 기초부터 실전까지 강의을 듣고 정리한 내용입니다. ✅ 인터페이스 인터페이스는 상호 간의 정의한 약속 혹은 규칙을 말한다. let kiki: object = { name: 'kiki', age: 24 } 객체의 타입을 정의할 때에는 위와 같이 object라고 타입을 선언해도 된다. 위처럼 kiki라는 객체의 안에 name과 age라는 속성이 있다고 하자. console.log(kiki.name); kiki.name에 접근하려 할 때 이미 object라는 타입을 선언했음에도 에러가 난다. 그 이유는 kiki라는 object 안에 name이라는 속성이 있는지 보장할 수 없기 때문이다. 에러를 해결하기 위해서는 { name: string; age: number; }의 식으로 모든 속성의 타.. 2021. 12. 26.
[FP&ES6+] 즉시 평가와 지연 평가의 비교 함수형 프로그래밍과 JavaScript ES6+ 강의를 듣고 정리한 내용입니다. ✅ 즉시 평가와 지연 평가의 중첩 사용 비교 즉시 평가를 사용하는 range, map, filter, take와 지연 평가를 사용하는 L.range, L.map, L.filter, take의 중첩 사용을 비교해 보고자 한다. range, map, filter, take의 중첩 사용 go( range(10), map(n => n + 10), filter(n => n % 2), take(2), console.log ); // output // [11, 13] go문 안에서의 실행 순서는 range, map, filter, take 순이다. 한 단계가 완료되면 다음 순서로 평가된 값을 넘기며 단계별로 실행된다. L.range, L.. 2021. 12. 25.
[FP&ES6+] L.map, L.filter 함수형 프로그래밍과 JavaScript ES6+ 강의를 듣고 정리한 내용입니다. ✅ 이터러블 중심 프로그래밍에서의 지연 평가 Lazy Evaluation. 제때 계산법, 느긋한 계산법이라고도 한다. 제너레이터 / 이터레이터 프로토콜을 기반으로 구현하며 가장 필요할 때까지 평가를 미루다가 정말 필요할 때 코드들을 평가하며 값을 만들어 나간다. 쉽게 말하면, 평가를 미루는 성질을 가지고 평가 순서를 달리 조작할 수 있는 준비가 되어있는 이터레이터를 반환하는 제너레이터 함수이다. next()를 통해 평가하는 만큼의 값만 가져올 수 있다. ✅ L.map const L = {}; L.map = function* (f, iter) { for (const a of iter) yield f(a); } L.map은 제너.. 2021. 12. 25.
[FP&ES6+] take 함수형 프로그래밍과 JavaScript ES6+ 강의를 듣고 정리한 내용입니다. ✅ take const take = (limit, iter) => { let res = []; for (const a of iter) { res.push(a); if (res.length == limit) return res; } return res; } limit값과 이터러블을 인자로 받는 함수이다. take 함수에서는 이터러블을 순회하다 이터러블의 limit번째 까지만 담아 리턴한다. 즉, 많은 값을 받아서 일정한 값 만큼 잘라주는 함수라고 할 수 있다. console.log(take(2, [1, 2, 3])); // output // [1, 2] ✅ 지연 평가의 효율성 L.range와 같이 지연성을 가지는 값을 이터레이.. 2021. 12. 25.
[TS] 변수와 함수 타입 정의 타입스크립트 입문 - 기초부터 실전까지 강의을 듣고 정리한 내용입니다. ✅ TS 변수 타입 스크립트의 기본 타입은 12가지로 나눌 수 있으며 Boolean, Number, String, Object, Array, Tuple 등이 있다. String 먼저 JavaScript에서의 문자열 정의는 아래와 같다. let str = "hello"; 똑같은 변수 str을 TS로 바꾸면 다음과 같다. let str: string = "hello"; : 를 이용해 변수 str의 타입이 string임을 선언하고 "hello"라는 문자열을 str의 값으로 주었다. Number 위와 동일하게 타입이 숫자인 변수의 선언은 다음과 같다. let num: number = 1; Boolean 타입이 진위값인 변수의 선언은 다음과 .. 2021. 12. 24.
엘리스 AI 트랙 4기 지원부터 합격까지 관련 정보는 이곳에서! >> https://elicetrack.oopy.io/ 오늘 12월 23일 12시 조금 넘어서 합격 문자를 받았다. elice AI 트랙 지원하기 전 합격 절차에 대해 구글링을 많이 해보았지만 얻을 수 있는 정보가 얼마 없었기에 다음 기수에 도전하는 사람들이 조금이라도 정보를 더 얻을 수 있도록 지원부터 합격까지의 과정을 주관적으로 적어보겠다. 👀 지원 동기 일단 나는 관련 학과 졸업생이다. 그렇지만 웹 쪽으로 진로를 정한 건 얼마 되지 않았다. 웹 관련 일을 하고 싶다 어렴풋이 생각만 한 게 4학년때이니 많이 늦었을 수도 있다. 안타깝게도 웹 관련 강의는 우리 학교에 없었고 그나마 관련 활동을 해본 건 vue.js 스터디 몇 개월 뿐이었다. 그러니 배우고 싶은 마음이 가득할 수 .. 2021. 12. 23.
8월부터 12월까지 지난 8월 꾸준히 한주간 내가 무얼 했는가 열심히 기록을 해나가겠다고 다짐한 게 무색하게도 글을 한 번 올리고 못 썼다. 왜냐하면 kite에서 오는 통계 메일을 기반으로 작성하려고 했지만 놀랍게도 그 이후 메일을 받을 수 없었기 때문이다. 통계 메일을 보며 열심히 했구나 뿌듯함을 느끼고 싶었지만... 아무리 찾아봐도 다시 메일을 받을 수 있는 방법은 못 찾았고 그냥 그렇게 12월이 됐다. ### 8 ~ 10월 ### 지난 8월 말부터 10월까지 개인 프로젝트 하나를 완성했다. 저번에 만든 python crawling 프로그램을 아예 react + node.js로 다시 구현해 보는 것이다. python에도 크롤링 할 수 있는 라이브러리가 있고 node.js에도 puppeter나 selenium이 있는데 꽤.. 2021. 12. 22.
[FP&ES6+] range & L.range 함수형 프로그래밍과 JavaScript ES6+ 강의를 듣고 정리한 내용입니다. ✅ range const range = length => { let i = -1; let res = []; while (++i a + b; var list = range(4); console.log(reduce(add, list)); // output // [0, 1, 2, 3, 4] // 6 숫자를 인자로 받아 0부터 그 숫자까지의 값을 요소로 가지고 있는 배열을 리턴한다. 함수의 내부를 살피면 length라는 인자를 받고 i가 0부터 length의 값까지 while문을.. 2021. 12. 22.