알(고리즘) 바(보) 탈출기 Prologue.

Haizel·2023년 5월 31일
11
post-thumbnail

그래 맞다. 나는 이른바 알(고리즘) 바(보)이다.
하지만 ! 나도 알고리즘 잘하고 싶다.
그래서 ! 나는 공부하려고 한다. 알고리즘을.
어떻게 ! 매일매일. 알고리즘과 자료구조 강의를 듣고 공부할 것이다. 큰 맘먹고 강의도 샀다.

다이어트를 하려면 주변사람들에게 알리라고 했다. 나도 알고리즘 천재가 되기 위해 블로그에 나의 알바 탈출기 를 기록하려고 한다. 보여줄게 완전히 달라진 나.

기록을 통해 매일매일 무엇을 배우고 깨우쳤으며, 습득했는지를 남겨 훗날 멋진 성장을 이룬 내 모습을 기대하며, 자 시작합니다 !!!!!

❗️ ps. 혹 이 시리즈가 멈춰있는 걸 누군가 발견하신다면, 댓글로 채찍질 해주세요. 🔨


Prologue.

🥫 자신만의 소스코드 관리하기


  • 알고리즘 코딩 테스트를 준비하며 자신만의 코드 템플릿을 만드는 것이 좋다.
  • 특히 대표적인 알고리즘(정렬, 최단 경로 등)의 기본형에 대해 미리 코드를 구현하자.
  • 자신만의 코드를 라이브러리화하여 깃허브에 관리한다.

🧬 코딩테스트 준비하기


  • 기업 코딩테스트의 경우 구현, DFS/BFS(탐색), 탐욕 알고리즘 유형이 출제 빈도가 높다. + 완전 탐색
  • 알고리즘 유형별로 이론 및 핵심 문제를 최소 10개 이상 풀어보기.

⏳ 시간 복잡도


  • 알고리즘 성능을 나타내는 척도로, 특정한 크기의 입력에 대해 알고리즘의 수행 시간을 분석한다.
  • 동일 기능을 수행하는 알고리즘이 있다면, 일반적으로 복잡도가 낮을수록 우수하다.
    • 복잡도 : 일반적인 '복잡하다'의 개념이 아니라 값이 크게 증가하는 정도, 크기에 대한 내용과 가깝다.

📊 빅오 표기법(Big-O Notation)

  • 시간 복잡도를 표기할 수 있는 방법으로, 가장 빠르게 증가하는 항만을 고려하는 표기법이다.
  • Big-O 표기법에서는 차수가 가장 큰 항에서 계수를 제외하여 O(N^3)으로 표현한다.
    • 즉, 가장 빠르게 증가하는 항만을 고려하는 표기법이다.

👉 Big-O 표기법 좀 더 자세히 알아보기


시간 복잡도 예시 1)

N개의 데이터의 합을 계산하는 프로그램 예제

let array = [3, 5, 1, 2, 4] //5개의 데이터, N = 5
let sumarry = 0 

//모든 데이터를 하나씩 확인하여 합계를 계산
for(let i = 0; i < array.length; i++) {
  sumarry += array[i];
}

console.log(sumarry);
  • 수행 시간은 데이터의 개수 N에 비례할 것임을 예측할 수 있으므로 → 시간 복잡도는 O(N)이다.
profile
한입 크기로 베어먹는 개발지식 🍰

0개의 댓글

관련 채용 정보