알고리즘의 공간복잡도를 계산하는 방법에 대해서 알아보자.
입력크기 N에 비례하여 알고리즘 실행을 완료하는데 필요한 총 메모리 공간의 양을 나타냅니다.
시간복잡도와 마찬가지로, 가장 큰 영향을 미치는 항을 기준으로 점근적 표기법을 사용하여 표현 합니다.
공간복잡도는 크게 고정공간과 가변 공간으로 구성된다. 알고리즘 분석 시 주로 가변 공간에 초점을 맞춰서 계산하면 됩니다.
- 고정 공간(Fixed Part) : 입력 크기에 관계 없이 항상 일정하게 필요한 공간 (코드 저장공간, 변수/상수 저장공간)
보통 O(1)로 취급되어 무시된다. - 가변 공간(Variable Part) : 입력 크기나 함수 호출 횟수 등 알고리즘의 실행 상황에 따라 달라지는 공간 (배열, 리스트, 맵 등)
🧠 1. 알고리즘 메모리 제한 해석
[C언어] (1바이트 = 8비트)
| 자료형 | 용도 | 일반적인 크기(바이트) | 비트 수 | 표현 범위 |
| int | 정수 | 4 바이트 | 32(8*4)비트 | (약) -2* 10^9 ~ 2 * 10^9 |
| double | 실수 | 8 바이트 | 64(8*8)비트 | +- 1.7 * 10^308 |
[JavaScript/TypeScript]
int,double을 구분하지 않고 double(=number)만 있다고 생각하면 된다
| 자료형 | 용도 | 일반적인 크기(바이트) | 비트 수 |
| number | 정수,실수 | 8 바이트 | 64(8*8)비트 |
[메모리 크키]
| 단위 | 변환(비고) |
| 비트(bit) | 0과 1로 구성되어 있다. |
| 바이트(Byte) | 1B = 8비트 |
| 킬로바이트(KB) | 1KB = 1,024바이트 |
| 메가바이트(MB) | 1MB = 1,024KB |
| 기가바이트(GB) | 1GB = 1,024MB |
| 테라바이트(TB) | 1TB = 1,024GB |
'알고리즘' 카테고리의 다른 글
| 더 좋은 코드 만들기 (0) | 2025.12.24 |
|---|---|
| 시간/메모리 초과 개선 + 백준 환경이 잘못되었자나(개선후기, 구간 합 구하기, 백준 2042번 세그먼트 트리) (1) | 2025.11.19 |
| LCS (백준 , 9251) (0) | 2025.11.18 |
| 최장 공통 부분 수열 (Longest Common Subsequence, LCS) (0) | 2025.11.17 |
| 2×n 타일링 (DP) (0) | 2025.11.17 |