[TIL][알고리즘 기초] Complexity | Deep / Shallow Copy

2024. 3. 30. 00:05· 공부기록/Algorithm
목차
  1. Complexity
  2. Big-oh Notation시간 복잡도에 대해 설명해주세요.
  3. 시간/공간복잡도에 대해 설명해주세요.
  4. 시간 복잡도와 관련된 요소에 대해 설명해주세요.
  5. 공간 복잡도와 관련된 요소
  6. 시간 복잡도는 매우 낮지만 메모리를 매우 많이 사용한다면 어떻게 대처할 수 있을까요?
  7. ref
  8. Deep / Shallow Copy
  9. 깊은 복사와 얕은 복사에 대해 설명해주세요.

Complexity

Big-oh Notation시간 복잡도에 대해 설명해주세요.

O() 로 표기되는 빅 오 표기법은 최악의 경우에서의 성능을 나타냅니다.

시간/공간복잡도에 대해 설명해주세요.

알고리즘이 얼마나 효율적인지 판단하는 척도입니다. 각각 특정 크기의 입력(n)을 기준으로 연산 시간 또는 메모리 사용량이 얼마나 되는지 객관적으로 판단하는 데 쓰입니다. 두 복잡도 모두 빅오 표기법을 사용하여 표현할 수 있습니다. O() 로 표기되는 빅 오 표기법은 최악의 경우에서의 성능을 나타냅니다. 시간 복잡도는 알고리즘이 문제를 해결하는 데 필요한 시간의 양을 의미하고, 입력된 데이터의 크기와 실행 시간 간의 비례 관계를 나타내는 지표입니다. 공간 복잡도는 알고리즘이 문제를 해결하는 데 필요한 메모리의 양을 나타냅니다. 입력한 데이터의 처리 과정에서 필요한 저장 공간으로 결정됩니다.

시간 복잡도와 관련된 요소에 대해 설명해주세요.

상수 시간(O(1))

  • 입력 데이터의 크기에 상관 없이 일정한 시간이 소모됩니다.일반적인 stack/queue의 삽입/인출이 해당됩니다.

로그 시간(O(log n))

  • 입력 데이터의 크기가 커질수록 처리 시간이 로그만큼 짧아집니다.이중 탐색 알고리즘, 혹은 tree형태의 자료구조 탐색 등이 이에 해당됩니다.

선형 시간(O(n))

  • 입력 데이터의 크기에 비례해 처리 시간이 길어집니다. 1차원 for문이 해당됩니다.

선형 로그 시간(O(n log n))

  • 입력 데이터의 크기에 비례헤 처리 시간이 로그만큼 길어집니다. 병합 정렬, 퀵 정렬, 힙 정렬이 이에 해당됩니다.

2차/3차 시간(O(n^2) / O(n^3))

  • 입력 데이터의 크기에 비례해 처리 시간이 급수적으로 늘어납니다. 이중 for문 혹은 삽입 정렬, 버블 정렬, 선택 정렬이 해당됩니다.

공간 복잡도와 관련된 요소

  • 변수
  • 자료 구조
  • 함수 호출
  • 할당

시간 복잡도는 매우 낮지만 메모리를 매우 많이 사용한다면 어떻게 대처할 수 있을까요?

(시간 복잡도가 낮다는 뜻은 알고리즘이 시간 측면에서는 효율적이란 뜻이지만, 메모리를 많이 사용한다면 다른 대안을 생각해 볼 수 있습니다.) 현재 사용 중인 자료구조/데이터 구조를 메모리를 덜 사용하는 방향으로 구현해볼 수 있습니다.

  • 그러나 보통 시간 복잡도와 공간 복잡도, 즉 시간과 메모리자원(공간)은 반비례적인 경향이 있습니다.

ref

기술 면접에서 시간 복잡도를 물어보는 이유 & 매우 간단한 시간복잡도 문제 소개 

시간 복잡도: 위키

Deep / Shallow Copy

깊은 복사와 얕은 복사에 대해 설명해주세요.

객체의 얕은 복사는 객체의 참조값을 복사합니다.(사본의 속성이 원본 객체와 같은 참조를 공유) 이 경우 원본이나 복사본을 변경할 경우, 복사본이나 원본이 함께 변경됩니다. 이런 경우를 피하려면 깊은 복사가 필요합니다. 반대로 깊은 복사는 객체의 값을 복사합니다.(사본의 속성이 원본 객체와 다른 참조를 가지는 복사, 비공유) 따라서 원본/사본 복사시 상대편 객체가 변경되지 않습니다.

ref

mdn: shallow copy mdn: deep copy

'공부기록 > Algorithm' 카테고리의 다른 글

Recursion | Iteration :: 재귀와 반복  (0) 2024.04.04
[TIL][DS 기초] Data Structure  (0) 2024.03.30
[TIL][Mon] AVL 트리  (0) 2023.11.06
[TIL][Sun] 이진 탐색 트리, 균형 이진 탐색 트리  (0) 2023.11.05
[TIL][Mon] LCS : DP  (1) 2023.10.30
  1. Complexity
  2. Big-oh Notation시간 복잡도에 대해 설명해주세요.
  3. 시간/공간복잡도에 대해 설명해주세요.
  4. 시간 복잡도와 관련된 요소에 대해 설명해주세요.
  5. 공간 복잡도와 관련된 요소
  6. 시간 복잡도는 매우 낮지만 메모리를 매우 많이 사용한다면 어떻게 대처할 수 있을까요?
  7. ref
  8. Deep / Shallow Copy
  9. 깊은 복사와 얕은 복사에 대해 설명해주세요.
'공부기록/Algorithm' 카테고리의 다른 글
  • Recursion | Iteration :: 재귀와 반복
  • [TIL][DS 기초] Data Structure
  • [TIL][Mon] AVL 트리
  • [TIL][Sun] 이진 탐색 트리, 균형 이진 탐색 트리
J융
J융
Recording of development
J융
Develop day by day
J융
전체
오늘
어제
  • 분류 전체보기 (67)
    • 공부기록 (63)
      • CS (8)
      • OS (15)
      • Algorithm (19)
      • Web (3)
      • HTML&CSS (6)
      • Electron (1)
      • JavaScript (5)
      • Network (0)
      • C (2)
      • Python (3)
      • Git (1)
    • 개발일기 (3)
      • Alice기록 (0)
      • Krafton Jungle 기록 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • fe
  • 크래프톤정글
  • 기술면접대비
  • pintos
  • 알고리즘
  • 엘리스AI트랙
  • cs기초
  • 비전공자개발자
  • vm
  • 앨리스트랙
  • 정글공부키워드
  • 부트캠프
  • #cs기초
  • CG
  • 수강후기
  • cs지식
  • JS기초
  • 개발일기
  • Web
  • os

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
J융
[TIL][알고리즘 기초] Complexity | Deep / Shallow Copy
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.