프로그래밍/알고리즘

[알고리즘]00. 알고리즘 공부를 시작 하면서

홍범87 2022. 12. 14. 15:05

알고리즘이란?

특정 문제에 대한 확실한 문제 해결법!!
문제가 있는 다음에 알고리즘이 있다. 새로운 문제는 언제든지 새롭게 나타난다.
  • 어떤 문제를 해결하는 명백한 방법
    • 어떤 문제 : 문제가 특정되어 있어야 함
    • 명백한 방법 : 방법이 모호해서는 안됨

알고리즘의 두 가지 학습 법

  • 이론적 접근
    • 학계에서 좀 더 중시하는 방법
    • 알고리즘의 고안
    • 알고리즘의 성능 및 올바름 측정
  • 실용적 접근
    • 실무에서 좀 더 중시하는 방법
    • 기존 알고리즘의 사용/확장/응용
    • 알고리즘의 성능 및 올바름 측정

일상 생활에서의 알고리즘

  • 다른 이름
    • 프로세스 (공정)
    • 매뉴얼
    • 라면 끓이기
    • 키 순서대로 학생들 줄 세우기
    • 자동차 우회전하기 등

수학/컴퓨터 공학에서의 알고리즘 정의

  • 어떤 부류의 문제를 해결하는 컴퓨터로 구현 가능한 명백한 명령어들
  • 명백함 ( = 애매 모호 하지 않음)
    • 각 명령어들이 잘 정의되어 있어야 함
    • 명령어들을 실행하는 순서도 잘 정의되어 있어야 함
    • 명령어 실행 순서가 유한해야 함

알고리즘을 사용하는 이유?

  • 구현 못 하는 프로그래머는 명밷한 한계가 있음
    • 각 알고리듬의 장단점 및 성능에 대한 이해 부족
    • 어디에 어떤 알고리즘을 사용해야 하는지 모름
    • 기존 알고리즘을 제대로 확장하자 못함

여기서 프로그래머가 하는 일은 무엇 인가?

어떠한 문제가 있을때 문제를 해결하는 사람
즉, 문제 해결 능력이 중요하다.

공부 방법

가장 기초가 되는 알고리즘이 존재한다. 기초 알고리즘을 이해하고 문제를 봤을때 기초 알고리즘을 통하여 발전해 나가는 것