Menu
Coddy logo textTech

Pseudo Code

Coddy의 기수 정렬 - DSA 시리즈 코스 레슨 — 9개 중 4번째.

countingSortByDigit(array, exp):
   n = length(array)
   output = array of size n
   count = array of 10 zeros
   for each x in array:                 # 각 자릿수의 개수를 셉니다
      count[(x / exp) % 10] += 1
   for d from 1 to 9:                   # 누적 합계 -> 위치 계산
      count[d] += count[d - 1]
   for k from n-1 down to 0:            # 뒤에서부터 배치 (안정 정렬 유지)
      d = (array[k] / exp) % 10
      count[d] -= 1
      output[count[d]] = array[k]
   return output

radixSort(array):
   max = largest value in array
   exp = 1
   while max / exp > 0:
      array = countingSortByDigit(array, exp)
      exp = exp * 10
  • exp는 자릿값입니다: 1은 일의 자리, 10은 십의 자리, 100은 백의 자리를 의미합니다. (x / exp) % 10은 해당 자릿수의 숫자를 추출합니다.
  • countingSortByDigit은 단일 자릿수에 대한 안정 정렬(stable sort)입니다: 각 숫자가 몇 번 나타나는지 세고, 그 횟수를 위치 정보로 변환한 다음, 순서를 유지하기 위해 요소를 뒤에서부터 앞으로 배치합니다.
  • radixSort는 각 자릿수마다 이 과정을 한 번씩 실행하며, exp가 가장 큰 수의 자릿수를 넘어서면 중단합니다.

직접 해보기

이 레슨에는 코드 챌린지가 없습니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기수 정렬 - DSA 시리즈의 모든 레슨