삐옹

알고리즘 개념 본문

Algorithm

알고리즘 개념

삐옹 2022. 5. 16. 14:15

학습 계기

- 난 수학적인 지능이 좀 딸린단 생각을 갖고 살아서.. 알고리즘 공부를 미루고 미뤄왔다.

하지만 개발에 있어서 알고리즘이 설계도라는 비유를 어떤 블로그에서 보고 더이상 피할데가 없음을 깨달았다.

왜냐면 1주차 프로젝트를 만들면서 설계라는 것의 중요성을 깨달았기 때문이다. 

 

공부 방법

알고리즘을 공부하는 목적은 단순 풀이가 아닌 구현에 있다.

'일단 되라 얍'이 아니라 '문제를 빠르게 파악하고, 효율적으로 문제를 풀어서, 어떤 입력값이 들어오더라도 안정적인' 코딩을 하는 것이다.

 

개념이해를 하기전에 내가 알고리즘을 어떤 언어로 풀 것인지를 정해야한다.

나는 전부터 자바스크립트를 공부해왔기에 별 고민없이 정했다.

  1. 개념이해
  2. 기본 알고리즘 코드 학습
  3. 쉬운 문제 풀이(스터디를 잘 이용하자)
  4. 어려운 문제 풀이

개념 이해

이 편에서는 알고리즘의 전반적인 개념에 대해서만 정리한다

 

알고리즘이란

비유하자면 알고리즘은 건축이란 분야에서 설계도 같은 것이다. 프로그래밍이 건물을 짓는 방법에 관한 것이라면 알고리즘은 건물을 설계하는 방법이다.

그러므로 프로그래밍과 알고리즘 둘 중 하나라도 모르면 난감하다. 편식은 노노해

 

알고리즘 종류

  1. 시간 복잡도: 방 청소할 때 널려있는게 얼만큼이냐에 따라 청소하는 시간이 달라진다.프로그래밍도 마찬가지이다.
    입력값이 얼만큼이냐에 따라 출력하는 횟수가 달라진다. 입력하는 양과 알고리즘 실행에 걸리는 시간이 관계가 있다는 말이다. 
  2. 자료구조: 데이터를 저장하는 방식이다. 데이터에 맞는 저장 방식, 즉 자료구조를 선택하는 것은 효율적인 알고리즘에 필수다.

  3. 기초 정렬 알고리즘: 데이터를 정렬해야 하는 이유는 탐색을 위해서이다. 수납장에 잘 정리해놓은 물건은 찾기가 편한 것 처럼.

참고한 블로그:

https://blog.yena.io/studynote/2018/11/14/Algorithm-Basic.html

'Algorithm' 카테고리의 다른 글

node.js로 백준 알고리즘 입력값받기  (0) 2022.06.28