
선택정렬 배열의 가장 작은 값을 선택하여 맨 처음의 index값과 swap하며 정렬하는 알고리즘 과정 배열 중에 최솟값이 위치한 index를 찾는다. 최솟값이 위치한 index값과 맨 처음의 index값을 swap한다. 맨 처음의 index값을 제외한 나머지 배열에 1,2를 적용한다. 하나의 요소가 남을 때까지 1,2,3번을 반복한다. 시간복잡도 최선, 최악, 평균 모두 O(n^2)의 시간복잡도를 갖는다. 공간복잡도 주어진 배열 안에서 swap을 통해 정렬이 수행되므로 O(n)이다. 장점 알고리즘이 단순하며 사용할 수 있는 메모리가 제한적인 경우에 사용시 성능 상의 이점이 있다. (*제자리 정렬) 알고리즘 구현 난이도가 굉장히 낮다. 제자리 정렬(in-place sort)이란? 추가적인 공간이 필요하지 ..

정의 힙은 우선순위 큐를 구현하기 위하여 만들어진 자료구조이다. (우선순위 큐는 자료구조가 아닌 개념이다.) 우선순위 큐를 구현하는 방법에는 배열, 연결리스트, 힙 이렇게 3가지 방법이 있는데 이 중에서 힙이 가장 효율적이다. 우선순위 큐 구현 방법 삽입 삭제 순서 없는 배열 O(1) O(n) 순서 없는 연결 리스트 O(1) O(n) 정렬된 배열 O(n) O(1) 정렬된 연결리스트 O(n) O(1) 힙 O(log n) O(log n) 힙은 최대값과 최소값을 빠르게 찾아내도록 만들어졌고, 반정렬 상태이다. (큰 값이 상위 레벨에 있고 작은 값이 하위 레벨에 있다 정도) A가 B의 부모 노드면, A와 B의 키 값 사이에는 대소 관계가 성립한다. 자료의 삽입, 삭제 후엔 항상 힙이 유지할 수 있도록 재구조화(..

10일간의 길었던? 노션 클론 프로젝트가 끝이 났다. 일단 결과물과 코드 JooNotion 🔳 JooNotion joo-notion.vercel.app https://github.com/chunwookJoo/JooNotion GitHub - chunwookJoo/JooNotion Contribute to chunwookJoo/JooNotion development by creating an account on GitHub. github.com 이 프로젝트를 진행하기 전에 1기 선배님들의 화려한 노션 클로닝 프로젝트를 보고 나도 저렇게 멋지게 만들고 싶다는 욕구가 활활 타올랐다. 회고록까지 완벽하게 프로젝트를 끝낸 선배님들을 보면서 나도 개발하면서 고민했던 부분, 이슈들 다 기록하면서 개발해야지 ㅎㅎ 하지..

데브코스 합격 메일을 받고 오리엔테이션 받은지 벌써 한달이 지났다. TF팀이 데브코스 기록 챌린지라는 좋은 활동을 만들어 주셔서 앞으로 블로그도 꾸준히 쓸 겸 매 단위기간마다 회고글을 써보려고 한다. 독후감, 감상문, 심지어 누군가한테 편지를 쓴지도 너무 오래되었고 책도 잘 안읽는 편이라 글 솜씨가 많이 부족하다. 이번 기록 챌린지를 하면서 그런 부족한 부분을 보완할 수 있는 기회가 되면 좋겠다. (예쁘게 봐주세호🙇♂️) 적응의 기간이었던 한 달 데브코스에서의 첫 한달을 돌이켜보자면, 적응의 기간이었다고 할 수 있을 것 같다. 1~2주차는 데브코스 환경에 스며들기 위해 각종 툴(슬랙, 디스코드, 줌, 노션 등)에 적응했고, 또 코어시간과 매주 커피챗에도 적응하기 위해 바빴다. 디스코드는 한번도 써보지 ..

클라이언트 측 자바스크립트 기술적인 측면에서 웹 브라우저에서 자바스크립트가 하는 일은 크게 네 가지로 분류할 수 있다. 웹 페이지의 Document 객체 제어(HTML, CSS 작업) 웹 페이지의 Window 객체 제어 및 브라우저 제어 웹 페이지에서 발생하는 이벤트 처리 HTTP를 이용한 통신 제어 최신 웹 브라우저에서는 다음과 같은 기능을 제공한다. 파일 읽기와 쓰기 데이터베이스 기능 비동기 통신 2,3차원 그래픽 등등.. 이전까지는 자바스크립트의 속도가 매우 느렸으나, 크롬과 파이어폭스가 실행 중에 JS코드를 컴파일하는 JIT 컴파일러 (Just In Time Compiler)를 도입하면서 빠른 실행 속도를 구현했다. 웹 브라우저에서의 자바스크립트 실행 순서 웹 브라우저에서 HTML문서를 분석하고 ..

배열의 메서드 그 전에 자바스크립트의 배열이 다른 언어와의 다른 점 2가지를 알아보자. 배열 내부의 데이터 타입이 서로 다를 수 있다. 배열 크기는 동적으로 변경될 수 있다. // 서로 다른 데이터 타입을 담을 수 있다 var arr = [1234, "test", true]; // 배열의 크기를 임의로 변경( 3 -> 5 ) // arr[3], arr[4]는 값이 할당 되지 않았기 때문에 undefined arr.length = 5; // 새로운 배열을 추가하면 크기는 자동으로 변경 ( 5 -> 6 ) arr[5] = "apple"; // 새로운 배열 추가로 크기 변경 ( 6 -> 7 ) arr.push("banana"); for (var i = 0; i < arr.length; i++) { consol..

때는 데브코스 면접날.. Lia님이 내가 최근에 스터디를 했던 내용 중에 호이스팅에 대해 물어보셨다. Lia : "최근에 모던자바스크립트 스터디 하셨다고 했는데 호이스팅이 뭔지 짧게 설명 해주실 수 있나요?" 나 : "어.. 변수 선언할 때 끌어올림 현상.. 입니다..." 다행히 정말 운좋게 합격해서 강의를 듣는중.. 이선협 강사님 : "var를 사용할 순 있지만 권장하진 않습니다. 그 이유는 호이스팅이라는 자바스크립트 특징 때문입니다. 도대체 호이스팅이 뭐길래 var를 안쓰는지는 오늘 숙제로 남기도록 하겠습니다. 🤗" 호이스팅에 대해 알아보자^^ 호이스팅 Hoisting (무언가를 들어올리다 / 끌러올리다) 라는 의미로, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미한다...

10월에 한 일들 프로그래머스 데브코스 3기 합격🎉 페이퍼리 사무실 정리😐 (2021-11 ~ 2022-10) 창업 호기롭게 시작했던 창업이 1년정도 되어간다. 학교 졸업을 할 때쯤 한마당 앱을 같이 만들었던 진억형님이 창업 제안을 했고, 경용형이랑 같이 셋이서 양재동 지하 어딘가에 사무실을 얻어서 창업을 했다. 페이퍼리 논문컨설팅 논문컨설팅, 시작과 끝을 페이퍼리에서 논문컨설팅의 시작과 끝을 페이퍼리에서 시작해보세요. 필요한 논문을 등록하고, 컨설턴트 검색 후 요청을 보내세요. paperly.co.kr 아직 실패했다고는 할 수 없지만 현실적인 벽이 너무 크게 느껴졌기 때문에 사무실은 정리를 하게 되었다. 거창하게 말해서 창업이지 경용형이랑 둘이서 꽤 큰? 프로젝트를 하나 끝낸 느낌이다. 기술 스택은 다..
- Total
- Today
- Yesterday
- 번들러
- 프로세스 동기화
- 원티드 프리온보딩 챌린지
- Recoil
- useMemo
- 알고리즘
- 교착상태
- 라이프사이클
- 프로그래머스 데브코스 FE
- propTypes
- kdt
- 프로그래머스 데브코스
- 무한스크롤
- 힙
- 회고
- 프로젝트 회고
- 네트워크
- CORS
- 호이스팅
- jwt
- 토이 프로젝트
- 스코프
- 배열의 메서드
- 웹 브라우저 객체
- React.Memo
- 코딩테스트
- JavaScript
- 노션 클로닝 프로젝트
- 리액트
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |