반응형
Python의 시간/메모리 제한
Python 3.7로 Code를 작성할 때 1초에 2,000만 번의 연산을 수행한다고 가정(2020년 기준)
시간 제한이 1초, 데이터 개수가 100만개인 문제가 있다면 일반적으로 시간 복잡도는
시간 제한 1초 메모리 제한 128 MB 데이터 개수 100만 개 이내의 Algorithm을 이용해 문제를 풀어야 한다.
☞일 때
이기 때문
1. 구현(Impletmentation)
: 머릿속에 알고 있는 Algorithm을 Code로 바꾸는 과정
☞ 흔히 Algorithm 대회에서의 구현 유형 문제는 풀이를 떠올리는 것은 쉽지만 Code로 옮기기 어려운 문제를 지칭한다.
e.g., 완전 탐색, 시뮬레이션
완전 탐색(Brute Forcing)
: 가능한 모든 경우의 수를 탐색하는 방법
시뮬레이션(Simulation)
: 문제에서 제시한 Algorithm을 한 단계씩 차례대로 직접 수행해야하는 문제 유형
2. 행렬(Matrix)
: 2차원 Data를 일종의 표와 같은 형태로 쉽게 나타내 줄 수 있도록 하는 수학 개념 중 하나 (Programming에서의 2차원 배열, 리스트)
☞ 일반적으로 Algorithm 문제에서의 2차원 공간은 행렬(Matrix)의 의미로 사용되며 Simulation 및 완전 탐색 문제에서는 2차원 공간에서의 방향 벡터가 자주 활용된다.
# 동, 북, 서, 남
dx = [0, -1, 0, 1] # 가로 축(행)
dy = [1, 0, -1, 0] # 세로 축(열)
# 현재 위치
x, y = 2, 2
for i in range(4):
# 다음 위치 -> 동, 북, 서, 남의 방향으로 1번씩 이동
nx = x + dx[i]
ny = y + dy[i]
print(nx, ny)
참고
반응형
'Algorithm' 카테고리의 다른 글
[Algorithm] 삽입 정렬(Insertion Sort) (0) | 2023.04.03 |
---|---|
[Algorithm] 버블 정렬(Bubble Sort) (0) | 2023.04.02 |
[Algorithm] 선택 정렬(Selection Sort) (0) | 2023.04.02 |
DFS/BFS (0) | 2022.04.07 |
[Algorithm] Greedy (0) | 2022.04.05 |