이 영역을 누르면 첫 페이지로 이동
쿄코코 블로그의 첫 페이지로 이동

쿄코코

페이지 맨 위로 올라가기

쿄코코

얼레벌레 생활🤯

[이코테] CHAPTER 06 정렬 - 계수 정렬

  • 2022.05.16 21:29
  • Study Platform📚/(알고리즘)- [이코테] 이것이 코딩테스트다 정리
    반응형

    계수 정렬 (Count Sort)

    : 특정한 조건이 부합할 때만 사용할 수 있지만, 매우 빠른 알고리즘( 일반적으로 가장 큰 데이터와 가장 작은 데이터의 차이가 1,000,000을 넘지 않을 때 효과적으로 사용할 수 있다.)

    별도의 리스트를 선언하고 그 안에 정보를 담는다.

    데이터를 하나씩 확인하며 데이터의 값과 동일한 인덱스의 데이터를 1씩 증가시키면 계수 정렬이 완성된다.

    ex)

        7 5 9 0 3 1 6 2 9 1 4 8 0 5 2

    0 1 2 3 4 5 6 7 8 9
    0 0 0 0 0 0 0 1 0 0

        7 5 9 0 3 1 6 2 9 1 4 8 0 5 2

    0 1 2 3 4 5 6 7 8 9
    0 0 0 0 0 1 0 1 0 0

        7 5 9 0 3 1 6 2 9 1 4 8 0 5 2

    0 1 2 3 4 5 6 7 8 9
    0 0 0 0 0 1 0 1 0 1

        7 5 9 0 3 1 6 2 9 1 4 8 0 5 2

    0 1 2 3 4 5 6 7 8 9
    1 0 0 0 0 1 0 1 0 1

        7 5 9 0 3 1 6 2 9 1 4 8 0 5 2

    0 1 2 3 4 5 6 7 8 9
    1 0 0 1 0 1 0 1 0 1

        7 5 9 0 3 1 6 2 9 1 4 8 0 5 2

    0 1 2 3 4 5 6 7 8 9
    1 1 0 1 0 1 0 1 0 1

        7 5 9 0 3 1 6 2 9 1 4 8 0 5 2

    0 1 2 3 4 5 6 7 8 9
    1 1 0 1 0 1 1 1 0 1

        7 5 9 0 3 1 6 2 9 1 4 8 0 5 2

    0 1 2 3 4 5 6 7 8 9
    1 1 1 1 0 1 1 1 0 1

     7 5 9 0 3 1 6 2 9 1 4 8 0 5 2

    0 1 2 3 4 5 6 7 8 9
    1 1 1 1 0 1 1 1 0 2

     7 5 9 0 3 1 6 2 9 1 4 8 0 5 2

    0 1 2 3 4 5 6 7 8 9
    1 2 1 1 0 1 1 1 0 2

     7 5 9 0 3 1 6 2 9 1 4 8 0 5 2

    0 1 2 3 4 5 6 7 8 9
    1 2 1 1 1 1 1 1 0 2

     7 5 9 0 3 1 6 2 9 1 4 8 0 5 2

    0 1 2 3 4 5 6 7 8 9
    1 2 1 1 1 1 1 1 1 2

     7 5 9 0 3 1 6 2 9 1 4 8 0 5 2

    0 1 2 3 4 5 6 7 8 9
    2 2 1 1 1 1 1 1 1 2

     7 5 9 0 3 1 6 2 9 1 4 8 0 5 2

    0 1 2 3 4 5 6 7 8 9
    2 2 1 1 1 2 1 1 1 2

     7 5 9 0 3 1 6 2 9 1 4 8 0 5 2

    0 1 2 3 4 5 6 7 8 9
    2 2 2 1 1 2 1 1 1 2

    따라서 출력 결과는 0은 2번, 1은 2번,이런식으로 출력된다.

    0 0 1 1 2 2 3 4 5 5 6 7 8 9 9 

    array = [7,5,9,0,3,1,6,2,9,1,4,8,0,5,2]
    #리스트 선언( 모든 값은 0으로 초기화)
    count = [0] * (max(array)+1)
    
    for i in range(len(array)):
        count[array[i]]+=1
    
    for i in range(len(count)):
        for j in range(count[i]):
            print(i,end=' ')

    데이터의 개수는 N개, 데이터 중 최대값의 크기를 K => 시간 복잡도 O( N+ K )

     

    반응형

    'Study Platform📚 > (알고리즘)- [이코테] 이것이 코딩테스트다 정리' 카테고리의 다른 글

    [이코테] CHAPTER 05 DFS/BFS - BFS(deque 메서드) - Python(파이썬),Java(자바)  (0) 2022.05.18
    [이코테]CHAPTER 05 DFS/BFS - 스택, 큐, 재귀함수, DFS  (0) 2022.05.17
    [이코테]CHAPTER 06 정렬 - 퀵정렬- 파이썬(Python)  (0) 2022.05.15
    [이코테] CHAPTER 07 이진탐색- 순차 탐색, 이분탐색/이진탐색, 이진탐색트리  (0) 2022.05.13
    [이코테] CHAPTER 03 그리디(Greedy)  (0) 2022.05.11

    댓글

    이 글 공유하기

    • 구독하기

      구독하기

    • 카카오톡

      카카오톡

    • 라인

      라인

    • 트위터

      트위터

    • Facebook

      Facebook

    • 카카오스토리

      카카오스토리

    • 밴드

      밴드

    • 네이버 블로그

      네이버 블로그

    • Pocket

      Pocket

    • Evernote

      Evernote

    다른 글

    • [이코테] CHAPTER 05 DFS/BFS - BFS(deque 메서드) - Python(파이썬),Java(자바)

      [이코테] CHAPTER 05 DFS/BFS - BFS(deque 메서드) - Python(파이썬),Java(자바)

      2022.05.18
    • [이코테]CHAPTER 05 DFS/BFS - 스택, 큐, 재귀함수, DFS

      [이코테]CHAPTER 05 DFS/BFS - 스택, 큐, 재귀함수, DFS

      2022.05.17
    • [이코테]CHAPTER 06 정렬 - 퀵정렬- 파이썬(Python)

      [이코테]CHAPTER 06 정렬 - 퀵정렬- 파이썬(Python)

      2022.05.15
    • [이코테] CHAPTER 07 이진탐색- 순차 탐색, 이분탐색/이진탐색, 이진탐색트리

      [이코테] CHAPTER 07 이진탐색- 순차 탐색, 이분탐색/이진탐색, 이진탐색트리

      2022.05.13
    다른 글 더 둘러보기

    정보

    쿄코코 블로그의 첫 페이지로 이동

    쿄코코

    • 쿄코코의 첫 페이지로 이동

    검색

    메뉴

    • 홈

    카테고리

    • 분류 전체보기 (169)
      • Python (24)
        • 😈 99클럽 코테 스터디 4기 TIL (23)
        • 궁금한거 정리 (1)
      • SQL (16)
        • HackerRank (15)
      • [백준] Python,Java로 풀기📖 (71)
        • 정렬(Sorting) (6)
        • 그리디 (5)
        • 문자열 (7)
        • 수학 (3)
        • DFS&BFS (10)
        • 구현 (4)
        • 다이나믹 (17)
        • 이분탐색 (1)
        • 자료구조 (10)
        • 최단거리 (5)
        • 인덱스트리 (0)
      • [프로그래머스]Python,Java로 풀기 (6)
        • Level 1 (4)
        • Level 2 (2)
      • Study Platform📚 (25)
        • (운영체제) - 블로그 및 강의 참고 (0)
        • 김영한👨🏻‍🏫의 스프링 부트와 JPA 실무 완전 .. (5)
        • (알고리즘)- [이코테] 이것이 코딩테스트다 정리 (10)
        • 그림으로 배우는 Http&Network Basic (10)
      • 까먹을까봐 적는 것들 (5)
      • 테스트 보고 난 후..🤔 (0)
      • kt 에이블스쿨 (18)

    최근 글

    인기 글

    댓글

    공지사항

    아카이브

    태그

    • 프로그래머스
    • 백준
    • 항해99
    • 99클럽
    • TiL
    • 티스토리챌린지
    • 코딩테스트준비
    • 오블완

    나의 외부 링크

    정보

    쿄코코의 쿄코코

    쿄코코

    쿄코코

    블로그 구독하기

    • 구독하기
    • RSS 피드

    방문자

    • 전체 방문자
    • 오늘
    • 어제

    티스토리

    • 티스토리 홈
    • 이 블로그 관리하기
    • 글쓰기
    Powered by Tistory / Kakao. © 쿄코코. Designed by Fraccino.

    티스토리툴바