알고리즘 배열

최길중·2026년 1월 27일

1차원 배열

순차 탐색

  • 순차 탐색은 배열의 처음부터 끝까지 하나씩 요소를 확인하며 원하는 값을 찾는 간단한 검색 방법입니다.
  • 그리 어렵지 않은 내용 그냥 순서대로.
  • 시간 복잡도: O(N)

이진 탐색

  • 절반씩 탐색
  • 시간복잡도: O(log N)

투 포인터

  • 시작과 끝
  • 연속된 구간의 합이나 특정 조건을 만족하는 부분을 찾을 때 주로 사용
  • 시간복잡도: O(N)

연속 부분 수열의 합

  • 배열에서 ‘붙어있는 구간(연속 부분)’을 잡아서 더했을 때 Target이 되는 구간이 몇 개나 있는지 세는 문제
  • 시간복잡도: O(N)

버블정렬

  • 인접한 두 요소를 비교하여 정렬
  • 처음 부터 끝까지 가야 한번
  • 시간복잡도가 O(N2)O(N^2)

계수정렬

  • 각 데이터가 몇 번 등장하는지 세어서 정렬
  • 시간복잡도가 O(N + K)
  • (N은 데이터 개수, K는 데이터 중 최댓값)

안정 정렬

  • 동일한 값을 가진 요소들의 원래 순서를 유지하는 정렬
  • 안정 정렬로서 구현 하기 위해 누적 합(Cumulative Sum) 배열을 사용

2차원 배열

행 우선 순회

  • 행(가로) 기준으로 왼쪽에서 오른쪽으로 순회한 뒤, 다음 행으로 이동하여 반복하는 방식
  • 시간 복잡도: O(N×M)

열 우선 순회

  • 열(세로) 기준으로 위에서 아래로 순회한 뒤, 다음 열로 이동하여 반복하는 방식
  • 시간 복잡도: O(N×M)

지그재그 순회

  • 홀수 행은 왼쪽에서 오른쪽으로, 짝수 행은 오른쪽에서 왼쪽으로
  • 시간 복잡도: O(N×M)

델타 탐색

  • 2차원 배열에서 현재 위치를 기준으로 상하좌우나 대각선 등 특정 방향 탐색
  • 시간복잡도: O(1)

나선형(달팽이)

  • 2차원 배열을 바깥쪽에서 안쪽으로 시계방향으로 돌면서 순회하는 방식
  • 시간 복잡도: O(N×M)

전치 행렬

  • 행렬의 행과 열을 서로 바꾼 행렬을 의미합니다. 즉, 원본 행렬의 (i,j) 위치의 원소가 전치 행렬에서는 (j,i) 위치로 이동합니다. 대각선을 기준으로 대칭되는 형태로 변환됩니다.
  • 시간 복잡도: O(N×M)

행렬의 회전

  • 행렬 회전은 배열의 요소를 특정 규칙에 따라 재배치하는 작업입니다. 주로 이미지 처리, 그래픽 렌더링, 퍼즐 게임 등 다양한 응용 분야에서 사용됩니다.
  • 시간 복잡도: O(N×M)

오늘 푼 문제

브론즈 달성

profile
개발자가 되고 싶어요

0개의 댓글