목록전체 글 (118)
상권's
-2021.10.21 오늘의 코플릿- 하나의 집합을 의미하는 문자열을 입력받아 각 문자를 가지고 만들 수 있는 모든 부분집합을 리턴해야 합니다. arr[i]는 각 부분집합을 구성하는 원소를 연결한 문자열입니다. arr[i]는 알파벳 순서로 정렬되어야 합니다. 집합은 중복된 원소를 허용하지 않습니다.부분집합은 빈 문자열을 포함합니다. arr은 사전식 순서(lexical order)로 정렬되어야 합니다. // 하나의 집합을 의미하는 문자열을 입력받아 각 문자를 가지고 만들 수 있는 모든 부분집합을 리턴해야 합니다. // arr은 사전식 순서(lexical order)로 정렬되어야 합니다. sort를 진행하면 될 거 같다 let result = ['', str] // 만드는 걸 다 push한다. // str...
-2021.10.20 오늘의 코플릿- 오름차순 정렬된 정수의 배열(arr)과 정수(target)를 입력받아 target의 인덱스를 리턴해야 합니다. 이진탐색 알고리즘(O(logN))을 사용해야 합니다. 단순한 배열 순회(O(N))로는 통과할 수 없는 테스트 케이스가 존재합니다. // 오름차순 정렬된 정수의 배열(arr)과 정수(target)를 입력받아 target의 인덱스를 리턴해야 합니다. // 이진탐색 알고리즘(O(logN))을 사용해야 합니다. // target이 없는 경우, -1을 리턴해야 합니다. // findIndex 를 사용한다. // let isTrue = (element) => element === target // arr를 절반으로 나눠서 진행을 한다 // arr.length를 절반으로..

출처 O(1) – 상수 시간 : 문제를 해결하는데 오직 한 단계만 처리함. O(log n) – 로그 시간 : 문제를 해결하는데 필요한 단계들이 연산마다 특정 요인에 의해 줄어듬. => 주로 입력 크기에 따라 처리 시간이 증가하는 정렬알고리즘에서 많이 사용된다. O(n) – 직선적 시간 : 문제를 해결하기 위한 단계의 수와 입력값 n이 1:1 관계를 가짐. O(n log n) : 문제를 해결하기 위한 단계의 수가 N*(log2N) 번만큼의 수행시간을 가진다. (선형로그형) => 주로 입력 크기에 따라 처리 시간이 증가하는 정렬알고리즘에서 많이 사용된다. O(n^2) – 2차 시간 : 문제를 해결하기 위한 단계의 수는 입력값 n의 제곱. => 반복문이 2번 있는 케이스 O(C^n) – 지수 시간 : 문제를 ..

Redux data flow 사진 출처 O.REILLY STORE = 애플리케이션의 STATE들이 모여있는 곳. ACTIONS = 객체의 형태로 이루어져 있으면서, STATE의 변화에 대해서 설명. REDUCERS = STATE가 어떻게 바뀌는 지에 대해서 설명. 다양한 REDUCERS들은 combineReducers를 통해서 관리를 할 수 있음. => 스토어를 통해서 변경된 STATE를 리액트 컴포넌트로 보내준다. 리덕스가 없을 때에는, STATE를 변경하기 위해서 STATE가 선언되어 있는 곳으로 이동한 후, 변경하고, 또 해당 컴포넌트로 이동을 해야되는데... STORE를 통해서 보관을 하고 관리를 할 수 있다. 아직 기본적인 틀에 대해서만 학습을 해서 내용이 너무 간략하지만, 추후 더 많은 학습을..
해당 블로그에서 스코프에 대해서 학습한 적이 있습니다. 간단하게 설명하면, 바깥 범위(전역스코프)에서 선언된 변수는 안의 범위(지역스코프)에서도 접근이 가능하지만, 반대로 안의 범위(지역스코프)에서 선언된 변수에는 바깥(전역스코프)에서 접근할 수 없습니다. 전역 변수나 전역 함수를 많이 생성될 경우, 변수 이름, 함수가 겹치는 경우가 발생할 수 있습니다. 여러 사람들과 함께 프로그램을 만들 경우, 겹침으로써 문제가 발생할 수 있습니다. 이러한 문제를 해결할 수 있는 방법으로, 전역 변수를 이용하지 않고 함수 안에 넣어서 지역변수로써 이용할 수 있습니다. 아니면 객체 안에 넣어 이용할 수 있습니다. var obj = { name: "sangkwon", city: "daegu", 자기소개 : function..
function paveBox(boxes) { //뒷사람이 포장을 전부 끝냈어도 앞사람이 끝내지 못하면 기다릴 수밖에 없는 환경입니다. //앞사람이 포장을 끝나면, 포장을 마친 뒷사람들과 함께 한 번에 나가게 됩니다. //이때, 통틀어 최대 몇 명이 한꺼번에 나가는지 알 수 있도록 함수를 구현해 주세요. // 앞의 사람의 박스가 많다면, 뒤에가 빨리 끝나더라도 기다려야 한다. // 최대 몇 명 나가는 지 확인하기 위해서, 해당 사람들과 비교를 해봐야 한다. let maxBox = 0; // boxes에서 가장 갯수가 많은 박스를 지정한다. let maxNum = 0; // 한꺼번에 나가는 사람 수 중 가장 큰 수를 찾는다. let num = 0; // maxBox에 대해 한꺼번에 나가는 사람들의 수 fo..
이번 한 주는 자료구조 고차함수리뷰, 비동기에 대해서 학습했습니다. 자료구조 자체에 대해서는 정보처리기사 필기를 준비하면서 학습했던 게 있어 쉽게 이해를 했지만, 이걸 코드로 구현하는 게 참 어려웠습니다. 기본적으로 구현하는 거는 쉬웠던 거 같은데, 이걸 활용해서 프린터나 다른 코플릿을 풀 때에는 어려움이 있었습니다. 고차함수는 직접 함수를 생성해보면서 복습할 수 있었습니다. 코드스테이츠에서 제공되는 레프런스를 보면서 예외 사항에 대한 처리나, 함수를 리턴할 때 해당 함수의 사용 방법을 정확하게 안다면 코드가 더 깔끔해질 수 있다는 걸 느끼면서 함수 자체에 대한 이해도를 높이고 활용능력을 길러야겠다는 생각을 했습니다. 비동기의 경우, 이해도 나름 잘 되었지만 저의 현 상태에 대해 크게 부족함을 깨달을 수..
Redux는 자바스크립트 앱을 위한 예측 가능한 상태 컨테이너입니다. -> 상태 관리 라이브러리 Redux는 여러분이 일관적으로 동작하고, 서로 다른 환경(서버, 클라이언트, 네이티브)에서 작동하고, 테스트하기 쉬운 앱을 작성하도록 도와줍니다. 여기에 더해서 시간여행형 디버거와 결합된 실시간 코드 수정과 같은 훌륭한 개발자 경험을 제공합니다. 여러분은 Redux를 React나 다른 뷰 라이브러리와 함께 사용할 수 있습니다. Redux는 매우 작지만(의존 라이브러리 포함 2kB), 사용 가능한 애드온은 매우 많습니다. => Redux는 state를 관리해주는데, 부모와 자식, 손주들 간에 state에 물려받고, 변경하는 일이 발생을 하게 되면은 선언했던 컴포넌트까지 찾아가야 되서 어려움이 따를 수 밖에 없..