데이터 구조와 알고리즘이란?

이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 사이트와, 다음 두 채널도 오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
●  잔재미코딩 뉴스레터 오픈 [구독해보기]
●  잔재미코딩 유투브 오픈 [구독해보기]

1. 데이터 구조(Data Structure)와 알고리즘 (Algorithm)이란?

1.1. Data Structure (데이터 구조)

  • 대량 데이터를 효율적으로 관리할 수 있는 데이터 구조, 자료구조라고도 함
  • 효율적인 데이터 처리를 위해, 데이터의 특성에 따라, 체계적으로 데이터를 구조화 하는 것
  • 효율적으로 데이터를 관리하는 예:
    • 우편번호: 5자리 우편번호로 국가의 기초구역을 제공
      • 5자리 우편번호에서 앞 3자리는 시, 군, 자치구를 표기, 뒤 2자리는 일련번호로 구성
    • 학생 관리: 학년, 반, 번호를 학생에게 부여해서, 학생부를 관리
      • XX학년, X반, X번 학생
      • 만약 위 관리 기법이 없다면... 3000명 학생중 특정 학생을 찾기 위해, 전체 학생부를 모두 훑어야 함

1.2. 알고리즘 (Algorithm) 이란?

  • 알고리즘: 어떤 문제를 풀기 위한 절차/방법
  • 어떤 문제에 대해, 특정한 '입력'을 넣으면, 원하는 '출력'을 얻을 수 있도록 만드는 프로그래밍
In [ ]:
# 알고리즘 예제: 김치찌개 만들기 (실행은 안됨)
def create_food(kimchi):
    '''
    clean_pot()         # 1.냄비 닦기
    prepare_pot(kimchi) # 2. 냄비에 김치와 김칫국물 넣기
    heat_pot()          # 3. 냄비 끓이기
    add_pot(seasoning)  # 4. 양념 넣기
    '''

kimchi_stew = create_food(kimchi)
eat(kimchi_stew)
  • 알고리즘은 프로그래밍으로 되어 있고,
  • 결국 컴퓨터가 알아들을 수 있는 비트로 표현 - 바이너리(이진 파일)
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
체계적으로 전문가 레벨까지 익힐 수 있도록 온라인 강의 로드맵을 제공합니다
프로그래밍 연습
정수의 절대값을 구하는 프로그램 작성해보기
위 그림을 확인하면서, 작성한 프로그램과 비교해보기
In [6]:
def func(num):
    if num > 0:
        return num
    else:
        return -num

func(-1)
Out[6]:
1