자료구조와 알고리즘

Dora·2020년 7월 7일

자료구조(Data Structure)

자료들을 정리하여 보관하는 여러 가지 구조들.

ex.
접시처럼 자료들을 쌓아서 정리하면 "스택"
마트 계산대 처럼 선입선출의 형태로 정리하면 "큐"

자료구조와 알고리즘이 중요한 이유?

프로그램 = 자료구조 + 알고리즘

  • 대부분의 프로그램에서 자료 구조를 사용하여 자료를 저장하고,
    그 자료들은 알고리즘을 통해 문제를 처리하는데 이용되기 때문이다.

  • 자료구조가 결정되면 그 자료구조에 사용할 수 있는 알고리즘은 정해져 있다.

간단한 자료구조 예시

n명의 학생들 중 최고 성적을 구하는 프로그램
자료구조 : 학생들의 성적이 담긴 배열 score[]
알고리즘 : score[0]을 largest로 두어 나머지와 비교하여 largest 찾기

문제해결

1단계. Problem Solving
문제 해결 방법으로 보통 프로그래밍 스타일이나 언어와는 무관하다.

2단계. Algorithm
컴퓨터로 문제를 풀기 위한 단계적인 절차를 장치가 이해할 수 있는 언어로 기술하는 것.

알고리즘의 정의

특정한 일을 수행하는 명령어들의 집합이라고도 할 수 있다.

  1. 0개 이상의 입력
  2. 1개 이상의 출력
  3. 명백성 : 명령어의 의미가 모호하지 않을 것.
  4. 유한성 : 반드시 종료될 것.
  5. 유효성 : 실행 가능한 연산일 것.

알고리즘 기술 방법

  1. 자연어
  2. 흐름도(flowchart)
  3. 의사 코드(pseudo-code)
  4. 프로그래밍 언어

자연어

약간의 모호성이 존재하여 명령어로 사용되는 단어들의 명백한 정의가 요구됨.

흐름도

도형을 사용하여 기술. 알고리즘이 복잡해 질수록 기술이 힘들어짐.

의사 코드

  • 자연어보다 체계적이고 프로그래밍 언어보다 덜 엄격함.
  • 알고리즘을 기술하는 데만 사용된다.
  • C언어와 유사하지만 대입연산자에 = 대신 <-를 사용.

프로그래밍 언어

모든 예약어들이 명백한 의미를 갖고 있음.


//의사 코드와 프로그래밍언어가 가장 많이 쓰인다.

profile
Lv.1 개발자

0개의 댓글