일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 손에 익히며 배우는 네트워크 첫걸음
- python
- 토익
- 알고리즘
- 파이썬
- 코드스테이츠
- 자바스크립트
- SQL 고득점 Kit
- codestates
- 리액트
- programmers
- til
- js
- Async
- 리덕스
- 리트코드
- 타임어택
- 2주 프로젝트
- 백준
- 타입스크립트
- 회고
- 제로초
- 정재남
- javascript
- LeetCode
- 타입스크립트 올인원
- 4주 프로젝트
- 코어 자바스크립트
- 프로그래머스
- 렛츠기릿 자바스크립트
Archives
- Today
- Total
Jerry
Mon, September 14, 2020 본문
반응형
근래, 금, 토, 일 TIL을 못 올렸다. 반성하자.
뭔가 꾸준히 올리는 것은 (지속성) 상당한 집중력과 지구력을 요구한다.
현재 가만히만 있어도 할 일이 부지기수로 쌓이는 상황에서 우선순위에 따라
일을 처리할 수 있는 체력과 냉철함이 뒷받침되어야 한다고 느낀다.
말로는 쉽다. 하기가 어려워서(또는 귀찮아서)가 문제이지.
1. array.slice(begin, end(end 미포함)); 메서드는 원본 데이터 손상을 방지할 수 있다.
- 얕은 복사본을 새로운 배열 객체로 반환하기 때문에.
- 원본 배열은 바뀌지 않는다.
The slice() method returns a shallow copy of a portion of an array into a new array object selected from start to end (end not included) where start and end represent the index of items in that array. The original array will not be modified.
<source> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
2. 알고리즘을 어떻게 풀어야 하나요?
- 요구사항이 하나 이상인 문제를 여러 개로 쪼개서 생각할 수 있다.
- 문제를 일상적인 문장으로 표현할 수 있다. (해당 위치에 바르게 주석을 적을 수 있다)
- 잘게 쪼갠 특정 문제가 이미 배운 js의 어떤 개념과 연관 되는지 생각해낼 수 있다.
- 위 3문장을 수도 코드로 적어서 풀어본다.
3. 빅오 표기법
- 반복을 얼마나 하는지를 기준으로 성능을 체크한다.
- 여러 개의 반복문 코드가 있으면, 비교적으로 더 큰 것을 기준으로 삼는다.
- 자주 보게될 빅오들(?) ex) O(1), O(n), O(n^2), O(n^3), O(log n), O(n log n)
- O(log n) ≒ O(1)
- Big O를 알면, 몇 중 for문을 써서 문제를 풀지를 알 수 있다.
- 보통 1억번 반복 횟수를 1초로 가정한다.
- struct Node 개당 8byte
- (32bit)*p 개당 4byte, (64bit) 8byte
- int 개당 4byte
- char 개당 1byte
- 시간 복잡도 -> 빅오 표기법 / 공간 복잡도 -> 메모리 공간 계산법
4. 슬라이드 윈도우
- 3가지 유형이 있다.
- 1. 슬라이드 윈도우
- 2. 슬라이드 윈도우 + DAT(Direct Adressing Table)
- 3. 슬라이드 윈도우 응용
5. undefined와 null의 차이
- undefined
- undefined 프로퍼티는 primitive type of js 중 하나다.
- 글로벌 객체다.
- non-configuable, non-writable property
- A method or statement returns undefined if the variable that is being evaluated does not have an assigned value
- <source> developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined
- null
- The value null represents the intentional absence of any object value.
- It is one of JS's primitive values and is trated as falsy for boolean operations.
- writable
- 글로벌 객체가 아니다.
- <source> developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/null
6. slice와 split의 차이
- slice
- Array.prototype.slice()
- This method returns a shallow copy of a oprtion of an array into a new array object selected from start to end(end not included) whrer start and end represent the index of items in that arrya. The original array will not be modified.
- <source> developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
- Array.prototype.slice()
- String.prototype.slice()
- This method extracts a section of a string and returns it as a new string, without modifying the original string.
- <source> developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
7. for of와 for in의 차이
- for of
- This statement creates a loop iterating over iterable objects(반복 가능 객체).
- String iteration
- <source> developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of
- for in
- This statement iterates over all enumerable properties of an object that are keyed by strings(except Symbos), including inherited enumerable properties.
- should not be used to iterate over an Array where the index order is important.
- Object iteration
- <source> developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in
8. unshift와 slice의 차이
- unshift
- this method adds one or more elements to the beginning of an array and returns the new length of the array.
- <source> developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift
9. 삽입 정렬
- 정렬된 숫자들 뒤에서 추가로 추가할 경우, 정렬을 하는 알고리즘
- quick sort 보다 빠름
- 맨 뒤 순차적으로 삽입 -> 삽입된 숫자가 앞에 있는 숫자보다 크면 가만히 있고 아니면 swap -> 출력
- 숫자가 작은 게 우선인 정렬을 '오름차순'이라고 함
- compare method(삽입 정렬 핵심!) ; 우선순위를 분류하기 위해서
10. 라이브러리 std
- 라이브러리란 다른 개발자가 편리하게 사용하도록 쓰라고 만든 코드들
- sort() : 정렬 알고리즘, 퀵소트와 힙소트로 구성되어 있다. (32 미만일 때 퀵소트, 32 이상일 때 힙소트)
(오름차순)
- sort(&vect[0], &vect[10]) == sort(vect, vect + 10)
- &vect[0] + 1 은 vect 1의 주소를 나타냄
(내림차순)
- sort(vect(vect, vect + 10, greater<int>()); (<> 은 템플릿 C++ 문법, 외우지 않고 가져다 쓰도록 한다.
(다중조건자격)
- (arr, arr + 5, compare);
11. (배열 대신 쓰는) vector STL
- 배열보다 조금 더 편하게 배열을 쓰려고 vector를 사용한다.
- 코테 스타트 코드에서 배열이 아닌 벡터로 나온다.
- vector <int> 변수명 = { ... }; <- 이런 식으로 정의한다.
- 변수명.push_back(); 뒤에 추가
- 변수명.size();
- 변수명.pop_back(); 뒤에 삭제
12. auto i(변수명)
- 자동으로 int type, char type 결정
- 추후에 복잡해질 때 가독성을 위해 쓰인다.
반응형
'자기 성찰 > TIL' 카테고리의 다른 글
Wed, September 16, 2020 (0) | 2020.09.17 |
---|---|
Tue, September 15, 2020 (0) | 2020.09.16 |
Thu, September 10, 2020 (0) | 2020.09.11 |
Wed, September 9, 2020 (0) | 2020.09.10 |
Tue, September 8, 2020 (0) | 2020.09.09 |