관리 메뉴

Jerry

Mon, September 14, 2020 본문

자기 성찰/TIL

Mon, September 14, 2020

juicyjerry 2020. 9. 15. 02:21
반응형

근래, 금, 토, 일 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의 차이

6. slice와 split의 차이

  •  

 

7. for of와 for in의 차이

8. unshift와 slice의 차이

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