본문 바로가기

2. 우당탕탕 개발자/2-1. 공부기록92

2020.08.20 Palindrome Linked List 풀이 문제 ) linked array 가 주어졌을 때, 해당 배열이 회문 되는 지 여부를 체크하는 문제 알아야 할 점) Palindrome 회문 : 1-2-2-1, 1-2-3-4-4-3-2-1 Math.ceil (올림), Math.floor(내림), Math.round(반올림) linked array list vs array (자바스크립트 배열 아님) : 삽입/삭제가 쉬움, 특별원소 찾을 때 O(n) Javascript Prototype (참고문헌 : 링크) 자바스크립트는 프로토타입 기반의 언어라고 한다. 어느 곳에 빈 Object 가 있고, 그 object에는 일정한 속성이 담겨 있다. 생성자를 통해서 우리는 그 object를 가져다 쓸 수 있다. 이때 객체는 언제나 함수로 생성된다. object도 사실은 .. 2020. 8. 20.
2020.08.19 Valid Parentheses 풀이 문제 : Valid Parentheses '(', ')', '{', '}', '[' ']' 만이 문자를 구성할 수 있다라고 할 때, 유효한 지 아닌지 판별하는 문제. 예를 들면 '{()}'은 유효하고, '{(}'은 유효하지 않은 문자열이다. 풀이 : 1) 주어진 문자열이 홀수면 반드시 유효하지 않다. 2) 문자열이 0이면, 반드시 유효하다. 3) 짝수의 문자열일 경우, 각각 여는 '(', '{', '['표현이 나오면 닫는 표현도 문자 반대 순서대로 나와야 한다. 여는 표현들이 나오면 arr 에 넣어주고, 닫힘 표현이 나오면 arr에 여는 표현이 있는지 체크 후, 있으면 제거 | 없으면 즉시 false /** * @param {string} s * @return {boolean} */ var isValid.. 2020. 8. 20.
2020.08.18 findUnsortedSubarray 풀이 문제 : 정수 배열이 주어지면, 오름차순으로 배열되지 않은 연속적인 sub-array의 갯수를 찾는 문제. 풀이) 연속적인 sub-array 를 묻는 문제는 start / end 나 mid/result 같은 변수를 두개를 두어, 중간 과정을 기록하면서 마지막에 결과 값을 도출해내는 식의 풀이가 많은 것 같다. 이 문제의 경우, 오름 차순으로 정렬된 타겟 배열을 만들고, 모든 배열의 원소를 하나씩 순회하면서 타겟 배열과 값이 다를 때, 그 인덱스의 시작점을 start에 기록하고, end는 그 인덱스 중 가장 큰 수를 기록하는 식이다. 이런식으로 뭔가 중간의 값과 비교하면서 작거나 큰 값을 남겨야 할 때는 Math.min | Math.max 매소드를 활용하는 것이 좋다. 이 때, Array.prototype.. 2020. 8. 19.
16Mar2020 TIL Binary Search Algorithm 이진 검색 알고리즘 (참고 : 위키피디아) 더보기 위키피디아는 가급적 영어로 보길 추천한다. 정보의 양이 다르기 때문이다. 이진 검색 알고리즘 역시 영문판이 훨씬 설명이 상세하다. 이진 검색 알고리즘은 정렬된 배열을 전제하로 한다. 오름차순이던 내림차순이던 (보통은 오름차순) 배열 안의 엘리먼트들이 크기대로 정렬되어 있어야 한다는 것이다. log n의 시간 복잡도를 가진다. 정렬되어 있는 배열의 중간에 위치한 값과 찾고자 하는 타겟 숫자를 비교하여 작을 경우 작은 쪽 절반을 가지고 반복한다. 반대의 경우 큰 쪽 절반을 가지고 반복한다. var binarySearch = function(arr, target) { let count = 0; let recurse =.. 2020. 3. 17.
13Mar2020 TIL redux-saga : 비동기적인 일 (data fetch 같은)처럼 side effect 라고 불리는 일련의 일들을 처리하는 라이브러리. 콜백의 지옥을 사용하지 않고, test 가 용이하고 관리가 쉬워 thunk 보다 자주 사용된다. //index.js 시조 component import createSagaMiddleware from "redux-saga"; import { getFetchData } from "./actions/actions"; const sagaMiddleware = createSagaMiddleware(); const store = createStore(todoReducer, applyMiddleware(sagaMiddleware, logger)); sagaMiddleware.ru.. 2020. 3. 13.
11Mar2020 TIL Redux - Thunk : A thunk is another word for a function. But it’s not just any old function. It’s a special (and uncommon) name for a function that’s returned by another. (출처) 단어가 가진 위압감으로 접근하기 어려웠지만, 비동기 처리를 위해 dispatch를 리턴하는 콜백을 함수로 감싸는 것. getDataFetch 겉에 함수는 비동기적으로 처리되게 하기 위한 하나의 장치 같은 느낌이다(뇌피셜. 확실하지 않음). //Actions.js export function getDataFetch(URL) { return dispatch => { dispatch({ type: GE.. 2020. 3. 12.