파이썬과 컴퓨터 사이언스(데이터 구조) - 데이터 구조(Data Structure)와 알고리즘 (Algorithm)이란?

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)
  • 알고리즘은 프로그래밍으로 되어 있고,
  • 결국 컴퓨터가 알아들을 수 있는 비트로 표현 - 바이너리(이진 파일)
프로그래밍 연습
정수의 절대값을 구하는 프로그램 작성해보기
위 그림을 확인하면서, 작성한 프로그램과 비교해보기
In [6]:
def func(num):
    if num > 0:
        return num
    else:
        return -num

func(-1)
Out[6]:
1