본문 바로가기

반응형

내직업은 IT종사자

(58)
[algorithm] 시간복잡도란? 시간복잡도 계산하는법 ( O(1), O(n), O(log n)) - 시간복잡도의 정의(바로가기) - 시간복잡도 계산법(바로가기) 1. 시간복잡도란? (Time complexity) 알고리즘 문제를 풀 때 예상 입출력 케이스를 코드 실행을 통해 통과 했음을 확인했어도 정작 코드 제출을 하면 효율성에서 시간초과로 통과하지 못하는 경우가 있다. 우리가 작성한 코드는 실행시간이 얼마나 걸릴까? 입력값과 연산 수행 시간의 상관관계를 나타내는 척도를 시간 복잡도라고 한다. 2. 시간복잡도 표현방법 점근적 표기법(3가지)로 시간복잡도를 나타내는데 사용된다. 최상의 경우 : 오메가 표기법 (Big-Ω Notation) 평균의 경우 : 세타 표기법 (Big-θ Notation) 최악의 경우 : 빅오 표기법 (Big-O Notation) 평균인 세타 표기법을 사용한다고 생각할 수 도 ..
[algorithm] stack(스택)이란? 사용 예제/방법 (javascript 코드) 스택(Stack) 이란? 메모리의 스택 영역은 함수의 호출과 관계되는 지역변수, 매개변수, 리턴 값 등의 임시데이터를 저장되는 영역. LIFO(Last In First Out, 후입선출) 구조 (데이터는 넣은 순서에 따라 아래서부터 위로 쌓이고, 제일 최상위(최근에 저장된 데이터) 부터 빠지는 구조입니다. 스택의 TOP & BOTTOM TOP/BOTTOM은 스택의 특정위치를 가르킨다. TOP은 가장 최근에 스택에 저장된 값, BOTTOM은 가장 처음 스택에 저장된 값을 가르킨다. 현재 TOP은 최상의 (B)이고 BOTTOM은 최하위 (A) 이다. 여기서 새로운 요소(C)가 추가 된다면! 가장 최근에 추가된 요소가 최상위로 가기때문에 TOP은 (C), BOTTOM은 최하위 (A)를 가르킨다. 예제 java..
ChatGPT를 VSCode에서 활용하는 방법 (GPTkey 붙여넣기가 안될때) 요새 이슈 되고있는 알아서 척척 Chat GPT! VSCode에서 확장플러그인(익스텐션)으로 chatGPT를 사용할 수 있다. 코드 주석, 리팩토링, 리뷰, 기타 등등 유용하게 사용할 수 있다.(정확한지는 사용자 테스트가 필요함, 100% 신뢰/의존X) 사용안내 github readme >> https://github.com/kstost/aicodehelper VSCode에서 ChatGPT사용 방법 1. GPT API key 발급 (https://platform.openai.com/account/api-keys) 초록색버튼(오른쪽사진)을 눌러 발급받은 API Key를 복사 2. VS Code 플러그인(익스텐션) 에서 [aicodehelper]설치 3. VSCode 에서 preference > setti..
[javascript] 다차원 배열을 일차원으로 변경하는 방법 flat(), flatMap(), map() 함수형 프로그래밍을 하기 위해서 즉, 명령형 프로그래밍이 아닌 선언형 프로그래밍을 하기 위해서는 언어 내부에 포함된 고차함수(Higher-Order Function) (예: Array prototype인 map, filter, reduce) 를 잘 이용해야한다. 여기에 ECMAScript 2019(ES10) 부터 새롭게 flat()과 flatMap() 이 추가되었다. 둘 다 중첩된 배열 구조를 평탄화 하기 위해 사용하는 함수이며 IE에서는 호환이 되지않는다. 명령형프로그래밍이란? ↓ 더보기 명령형(imprerative) vs 선언형(declarative) 명령형 프로그래밍은 어떻게 할 것인가 (How)를 표현하고, 선언형 프로그래밍은 무엇을 할 것인가 (What)을 표현한다. //명령형 function..
[algorithm] 해시테이블 자료구조 란? 해시테이블이란? 키와 값을 받아 키를 해싱 하고, index에 값을 저장하는 선형 자료 구조. 시간복잡도 면에서 삽입(add)은 O(1) 상수시간이 소요되며, 키를 알고 있다면 삭제, 탐색도 O(1)이 소요된다. 해쉬테이블이 빠른 검색 속도를 제공하는 이유는 내부적으로 배열(버킷)을 사용하여 데이터를 저장합니다. 값이 저장되는 방법은 key,value 값을 해쉬 함수 연산을 통해 index값으로 계산하고 buckets에 해당인덱스에 저장한다. 해시는 언제 사용하면 좋을까 ? 예. 학생정보, 회원정보, 환자정보 등등 key value 쌍을 이루는 값들을 다뤄야할때 연결리스트를 사용한다면 학생정보를 탐색할때 O(n)시간복잡도가 걸린다. 배열을 사용한다면 인덱스를 모를 경우 탐색에 O(n)이 걸린다. 해시테이..
[javascript] 헷갈리고 짜증유발 증감연산자 증감연산자 코딩 처음 했을 때 알쏭달쏭 헷갈리게 만들었던 범인. 다시 그때의 기억을 되짚어보며.. 증감 연산자 란 ? 변수의 값을 1씩 증가시키거나 1씩 감소시키는 연산자. 연산자의 위치에 따라 (앞 or 뒤) 전위연산자, 후위연산자로 구분된다. 전위 연산자 VS 후위 연산자 (prefix operator vs postfix operator) 보통 후위연산자가 좀 더 익숙하니까 후위연산자 부터 ! [후위연산자] /** * [후위연산자는 증가/혹은 감소하기 전에 값을 돌려준다.] */ let x = 1; let y = x++ ; // 사진 1번처럼 증가 되기 전 값 1이 y에 들어간다. // 그다음 x는 1이 증가된다. console.log(x, y); // 2, 1 let i = 3; let j = i-..
[javascript] 배열의 push,pop,unshift,shift 사용법 1. 배열에 값을 추가 push(), unshift() .push(value) : 배열의 맨 끝에 새로운 값 추가. .unshift(value) : 배열의 맨 앞에 새로운 값 추가. 예시 const arr = [1,2,3,4,5,6]; arr.push(7); // [1,2,3,4,5,6,7]; arr.unshift(0); //[0,1,2,3,4,5,6,7]; 2. 배열에 값을 삭제 pop(), shift() .pop() : 배열의 맨 끝에 있는 값 삭제. .shift() : 배열의 맨 앞에 있는 값 삭제. 예시 const arr = [1,2,3,4,5,6]; arr.pop(); // 6 arr은 [1,2,3,4,5]; arr.shift(); // 1 arr은 [2,3,4,5]; 3. push, pop, ..
React은(는) UMD 전역을 참조하지만 현재 파일은 모듈입니다. 대신 가져오기를 추가해보세요. ts(2686) React은(는) UMD 전역을 참조하지만 현재 파일은 모듈입니다. 대신 가져오기를 추가해보세요. ts(2686) javascript -> typesript 로 변환 과정에서 해당 에러가 난다면... ​ 1.package.json파일 체크 typescript version 이 4.1 이상인지 체크 react, react-dom version 이 17 이상인지 체크 ​ 2. tsconfig.json파일 체크 compilerOptions 안에 "jsx": "react-jsx" 확인 및 추가 { "compilerOptions": { ... "jsx": "react-jsx" } } 해당프로젝트 내에 tsconfig.json이 없다면 (npx create-react-app시 template를 typescript로..

반응형