일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 토익시험준비
- TOEIC Vocabulary
- 자료해석
- BOJ
- 토익문법정리
- 너비우선탐색
- NCS수리자료해석
- 다이나믹프로그래밍
- 영단어암기
- 문제해결능력
- 파이썬
- 토익단어
- 매일매일NCS
- dfs
- 알고리즘
- 토익 영단어
- 영어문장
- sqld
- BFS
- 수리능력
- TOEIC
- 공기업공부
- 토익문법노트
- 영단어
- 브루트포스
- 자바스크립트
- TOEIC문법
- 영문법
- 데이터베이스
- 주어
- Today
- Total
목록분류 전체보기 (79)
하나씩 알아가기
점화식을 찾아봅시다. 그림을 보고 입력받은 수가 n이라 할 때, n-2번째 까지의 경우는 두 가지이고 n-1번째 까지의 경우는 한 가지입니다. 좀 더 자세히 말하면 n-2번째까지 타일이 채워진 경우에서 너비가 2인 블럭으로 채우면 n번째 항까지 채운 경우가 되고 n-1번째 까지 타일이 채워진 경우에서 너비가 1인 블럭으로 채우면 n번째 항까지 채운 경우가 되는 것입니다. 그래서 f(n) = 2 * f(n-2) + f(n-1) 이렇게 점화식을 구할 수 있습니다. n = int(input()) dp = [0 for _ in range(1001)] dp[0] = 0 dp[1] = 1 dp[2] = 3 for i in range(3, n+1): dp[i] = 2 * dp[i-2] + dp[i-1] print(d..
틀린 부분이 있을 경우, 지적해 주시면 감사하겠습니다. ES6에 추가된 화살표 함수는 function 키워드 대신 =>(fat arrow) 연산자를 써서 표현합니다. 화살표 함수의 가장 큰 특징은 this의 바인딩 방법입니다. 화살표 함수의 렉시컬 스코프를 살펴봅시다 function foo(){ //화살표 함수를 반환한다 return (a) => { console.log(this.a); } } var obj1 = { a:2 } var obj2 = { a:3 } var bar = foo.call(obj1); bar.call(obj2); foo()의 리턴문에서 생성된 화살표 함수는 foo() 호출 당시의 렉시컬 스코프로 this를 포착합니다. foo()는 obj1에 this가 바인딩 되므로 bar의 this..
틀린 부분이 있을 경우, 지적해 주시면 감사하겠습니다. 명시적 바인딩(explicit binding) 함수 레퍼런스 프로퍼티를 객체에 넣지 않고 어떤 객체를 this 바인딩에 이용하겠다는 의지를 코드에 명확히 밝힐 방도는 없을까? call(), apply() 메소드에 대해 알아보겠습니다. 두 메소드는 this에 바인딩 할 객체를 첫째 인자로 받아 함수 호출 시 이 객체를 this로 세팅합니다. this를 지정한 객체로 직접 바인딩 하므로 이를 '명시적 바인딩(explicit binding)이라고 합니다. function foo() { console.log(this.a); } var obj = { a: 2 } foo.call(obj); foo.call()에서 명시적으로 바인딩하여 함수를 호출하므로 this..
그림을 그려가면서 가로의 길이에 대해 몇 가지의 방법으로 타일링을 할 수 있는지 구해봅시다 가로의 길이 1 2 3 4 방법의 수 1 2 3 5 점화식이 피보나치 수열처럼 이루어지는 것을 알 수 있습니다. f(n) = f(n-2) + f(n-1) (n>2) 위의 테이블대로 dp테이블을 구현해준다는 생각으로 코드를 짜겠습니다. n = int(input()) dp = [0 for _ in range(1001)] dp[1] = 1 dp[2] = 2 for i in range(3, n+1): dp[i] = dp[i-2] + dp[i-1] print(dp[n]%10007); 조금만 잘못 짜면 IndexError가 발생할 수 있으니 주의해야합니다. 결과로 특정 수와 나눈 나머지를 출력하라고 요구하는 이유는 결과값이 ..
틀린 부분이 있을 경우, 지적해 주시면 감사하겠습니다. 자바는 클래스 기반 언어이지만 자바스크립트는 프로토타입 기반의 언어라는 것을 들어보신적 있을 것입니다. 그만큼 자바스크립트에 있어서 중요하다고 해도 과언이 아니지만, 프로토타입의 개념을 정확히 이해하는 것은 쉽지 않기 때문에 한 번 정리해 보도록 하겠습니다. 자바스크립트에는 클래스라는 개념이 없습니다. 프로토타입을 이용하여 상속 기능을 구현합니다. ES6에서 class 문법이 추가되긴 하였지만 자바스크립트가 프로토타입 기반에서 클래스 기반으로 바뀐 것은 아닌 것으로 알고 있습니다.(class 키워드로 인해 구체적으로 자바스크립트 내부적으로 어떤 동작이 이루어지는지도 추후에 공부해 봐야겠군요) function Car() { this.wheel = 4;..
10을 세 가지 연산을 이용하여 1로 만든다고 할 때 모든 경우 중에 가장 작은 수를 찾아내야 합니다. 10 -> 9 -> 8 -> 7 -> ... -> 1 (x) 10 -> 9 -> 3 -> 1 (o) * 점화식: 수열의 각각의 항들의 관계를 나타낸 식 모든 경우의 수를 고려할 경우 점화식을 떠올리는 방법을 생각해 내는 것이 좋은 방법이 될 수 있습니다. 이 문제의 경우 수를 줄일 수 있는 연산은 세 가지 밖에 없으므로 점화식은 이 경우를 포함하여 적어줘야 합니다. f(n) = 1 + min(f(n/3), f(n/2), f(n-1)) 그런데 가령, f(n/3)이 반드시 존재하는 값은 아닐 수 있지만 이렇게 점화식 형태로 표현이 가능한 경우 다이나믹 프로그래밍을 적용하여 문제를 해결하는 것이 가장 일반적..
틀린 부분이 있을 경우, 지적해 주시면 감사하겠습니다. 이번에는 React Redux에서 많이 사용되는 함수와 컴포넌트에 대해 정리하겠습니다. React Redux는 리액트에서 리덕스를 사용할 수 있게 해주는 패키지 입니다. Redux는 독립적인 상태관리 라이브러리이지만 React에서 많이 사용되는 이미지입니다(아닐 수도 있습니다) 그렇기 때문에 React에서 Redux를 사용하는 효용이 많기 때문에 이렇게 패키지가 등장하지 않았나라고 생각합니다. Provider Provider는 우리의 App이 Redux store에 접근할 수 있도록 해줍니다. import React from 'react' import ReactDOM from 'react-dom' import { Provider } from 'rea..
틀린 부분이 있을 경우, 지적해 주시면 감사하겠습니다. 리덕스 미들웨어란 무엇인가? 리덕스 미들웨어는 디스패치 함수를 결합해서 새 디스패치 함수를 반환하는 고차함수(higher-order)입니다. 이들은 비동기 액션을 액션으로 전환합니다. 미들웨어는 함수 결합을 통해 서로 결합할 수 있습니다. 이는 액션을 로깅하거나, 라우팅과 같은 부수효과를 일으키거나, 비동기 API 호출을 일련의 동기 액션으로 바꾸는데 유용합니다. 위 그림처럼 미들웨어는 리듀서와 액션 사이에 존재하며, 액션이 디스패치 되었을 때 이를 수정하여 리듀서에 전달되도록 하는 역할을 할 수 있습니다. type MiddlewareAPI = { dispatch: Dispatch, getState: () => State } type Middlewa..
틀린 부분이 있을 경우, 지적해 주시면 감사하겠습니다. 자바스크립트의 내부 동작을 정확히 이해하는 것은 중요하기 때문에 정리해 보겠습니다. 런타임 환경(Runtime Environment) 자바스크립트의 런타임 환경은 다음 그림과 같이, 네 가지로 구성되어 있습니다. 1. 자바스크립트 엔진(힙과 호출 스택) 2. 웹 API 3. 콜백 대기열 4. 이벤트 루프 자바스크립트 엔진은 웹 브라우저에 존재하기 때문에 특정 소프트웨어를 설치할 필요가 없습니다. 브라우저 별로 다른 엔진을 사용하며, 시장에서 가장 점유율이 높은 Chrome의 경우 자바스크립트 엔진으로 V8 JS 엔진을 사용합니다. 자바스크립트 엔진의 목적은 개발자가 작성한 소스 코드를 컴퓨터가 특정 작업을 수행할 수 있는 기계어 코드로 변환하는 것이..