복잡도 (Complexity) (3) - 공간복잡도

2023. 7. 19. 21:36· Algorithm

공간복잡도란 쉽게 말해 소스코드에서 메모리를 사용하는 양이라고 할 수 있다. 공간복잡도 또한 시간복잡도와 마찬가지로 빅오 표기법을 사용하여 표기한다. 즉 O(N), O(log N)등과 같이 표기하는 것이다. 코딩 테스트에서 아래와 같은 문제 조건을 볼 수 있는데 이는 시간복잡도와 공간복잡도에 제한을 두기 위해서이다.

'시간 제한 1초, 메모리 제한 128MB'

C언어에서 기본자료형의 메모리 크기는 아래와 같다.

자료형 키워드
메모리 크기
문자형 char 1 Bytes
정수형 short 2 Bytes
int 4 Bytes
long 4 Bytes
부호없는 문자형 unsigned char 1 Bytes
부호없는 정수형 unsigned short 2 Bytes
unsigned int 4 Bytes
unsigned long 4 Bytes
부동 소수형 float 4 Bytes
double 8 Bytes

코딩 테스트에서 대부분 문제 해결을 위해 리스트(배열)을 사용하게 되는데 위의 표를 참고하여 공간복잡도를 계산한 예시를 나열한다.

  • int a[1000] : 4KB
  • int a[1000000] : 4MB
  • int a[2000][2000] : 16MB

코딩 테스트에서는 보통 메모리 사용량을 128 ~ 512MB로 제한한다. 파이썬에서는 위와 같은 int 자료형은 없지만 대략 100만 개 이상의 데이터가 들어갈 수 있는 크기의 리스트를 선언하는 경우는 적다는 점을 기억해야 한다. 만약 작성한 소스코드에서 리스트의 크기가 1,000만 단위 이상이라면 알고리즘을 잘못 서례한 것은 아닌지 확인해 봐야한다는 것이다. 

저작자표시 (새창열림)

'Algorithm' 카테고리의 다른 글

그리디 (Greedy) (2) - 실전문제 3.2) 큰 수의 법칙  (0) 2023.07.22
그리디 (Greedy) (1) - 그리디 알고리즘이란? / 예제 3.1) 거스름돈  (0) 2023.07.19
복잡도 (Complexity) (4) - 시간과 메모리 측정  (0) 2023.07.19
복잡도 (Complexity) (2) - 시간복잡도  (0) 2023.07.19
복잡도 (Complexity) (1) - 빅오 (Big-O) 표기법  (0) 2023.07.19
'Algorithm' 카테고리의 다른 글
  • 그리디 (Greedy) (1) - 그리디 알고리즘이란? / 예제 3.1) 거스름돈
  • 복잡도 (Complexity) (4) - 시간과 메모리 측정
  • 복잡도 (Complexity) (2) - 시간복잡도
  • 복잡도 (Complexity) (1) - 빅오 (Big-O) 표기법
공대생안씨
공대생안씨
전자공학과 학부생의 코딩 일기
티스토리
|
로그인
공대생안씨
공대생의 코딩 일기
공대생안씨
글쓰기
|
관리
전체
오늘
어제
  • All Categories (153)
    • Spring Boot (46)
      • JPA (7)
      • Lombok (2)
    • Java (21)
    • DevOps (3)
      • CI,CD (8)
      • Monitoring (2)
    • Database (7)
      • MySQL (5)
      • MongoDB (1)
      • H2 (1)
    • Trouble Shooting (5)
    • FE (4)
    • IntelliJ (3)
    • Git (3)
    • Algorithm (41)

블로그 메뉴

  • 홈
  • 태그
  • Github

공지사항

인기 글

hELLO · Designed By 정상우.v4.2.2
공대생안씨
복잡도 (Complexity) (3) - 공간복잡도
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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