[CS] Algorithm-Basic

Date:

카테고리:

태그:

. Introduction
비전공자로서 객관 적인 자기 평가를 하던 중, 빅데이터 분석 기사에서 배우는 컴퓨터 공학 기초 이외에
자료구조, 알고리즘 등등 공부해야 할 필요성을 느껴서 비전공자의 눈으로 정리해보려고 한다.
이미 python을 어느정도 구사하는 사람이 보는게 좋을 것 같긴 하다.

[Algorithm Basic]

알고리즘이란 무엇일까?
알고리즘에 대해서 찾아보면 유튜브 알고리즘, 인스타 알고리즘 등등 서비스 관련된 내용으로만 나오지 실제로는 알고리즘이라는 단어를 이해하기에는 도움이 되지 않는다. 또한 머신러닝, 딥러닝 모델과 알고리즘이랑 어떤 관계가 있을까?

[Algorithm Definition]

알고리즘을 한 문장으로 정의하면 다음과 같다.
알고리즘 : 어떠한 문제를 해결하기 위해 정해 놓은 일련의 절차
결론은 절차이다. 일련의 과정들을 거치는 것이 알고리즘이다. 특히 올바른 알고리즘이란
어떠한 경우에도 실행 결과가 똑같이 나오는 것이 중요하다.

[Algorithm Process]

알고리즘은 법칙이 있는데, 알고리즘은 순서를 가진다. 즉, 순차 구조를 갖는다.
또한 우리가 자주 쓰는 조건문을 포함하는데, 알고리즘에서는 조건식이라고 하고 조건식에 대한 평가한 결과에 따라서 선택 구조라고도 한다.
예를 들어 사과를 자른다고 했을때, 자르고 씻지 않고 씻고 자르는 순서를 거친다 (순차적). 그리고 만약 사과에 상한 부분이 있으면 그 자리를 도려내고 아니면 도려내지 않는다 (조건식). 이런식으로 알고리즘은 구성이 되어있다.

[Loop Algorithm]

알고리즘은 순차적으로 한 번만 진행하고 종료되는 것이 아니다. 여러 item에 각 알고리즘이 모두 적용되어야 한다. 따라서 알고리즘이 한번에 돌아가게끔, 반복되게 하는 것이 중요하다.

  • [While Loop]
    while Loop은 실행하기 전에 반복을 계속 할 것인지 판단하는 사전 판단 반복 구조

[ + 참고 : Algorithm Terms]

크게 중요하진 않지만, 앞으로의 Communication을 위한 내용이라고 생각하며 된다.

  1. 헤더, Header. if 나 while 과 같은 키워드로 시작하여, : 으로 끝나는 부분을 의미한다.
  2. 연산자 Operator, 피연산자 operand \(+\)나 \(-\)등 기호를 Operator, \(A+B\)에서의 A,B가 Operand 피연산자 이다.
    단항 연산자는 피연산자가 1개 ( -a )
    이항 연산자는 피연산자가 2개 ( a < b )
    삼항 연산자는 피연산자가 3개 ( a if b else c )

    Python에서는 유일하게 if~else문이 유일한 삼항 연산자이다. (조건 연산자 : conditional operator)

  3. 어떤 조건이 성립하는 동안 반복해서 처리하는 것을 우리는 반복 구조라 하고, 일반적으로는 Loop라고 표현한다.

[ + 참고: Python Variables System]

파이썬에서는 데이터, 함수, 클래스 모듈, 패키지 등을 모두 객체로 취급한다. 객체는 자료 type를 가지며 메모리를 차지한다. 이러한 특징으로 파이썬의 변수는 값을 가지지 않는다.
객체는 모두 각자의 식별번호, id가 있으며 id가 동일하다는 뜻은 같은 값과 같은 자료형, 같은 메모리를 소모한다는 뜻을 갖는다.

  1. 변수는 객체를 참조하는 객체에 연결된 이름에 불과하다.
  2. 모든 객체는 메모리를 차지하고, 자료형 뿐 아니라 식별번호 identity를 갖는다.
> n = 17
> id(17)
140710805205776
> id(n)
140710805205776
✏️ 개인 공부 기록용 블로그입니다! 틀린 부분이 있으면 언제든지 댓글로 알려주세요!
👍 항상 감사합니다!

ComputerScience 카테고리 내 다른 글 보러가기

첫 번째 글입니다 가장 최근 글입니다

댓글 남기기