알기쉬운 알고리즘(1주차)

park·2022년 11월 7일

알고리즘이란?
어떤 문제의 해결을 위하여, 입력된 자료를 토대로 하여 원하는 출력을 유도하여 내는 규칙의 집합
어떤 문제가 있을 때, 그것을 해결하기 위한 여러 동작들의 모임

알고리즘을 공부해야하는 이유❗

  1. 좋은 개발자
  • 좋은 개발자는 좋은 프로그램을 구현할 줄 알아야 한다. 좋은 프로그램이란? 적은 공간을 이용해서 빠른 속도로 수행되는 프로그램
  • 그런 프로그램을 만들기 위해 특정 자료구조나 접근방법을 알아야 한다.
  1. 좋은 회사 취직
  • 수많은 기업들이 코딩테스트를 통해 개발자를 구인 중
  • 기초적인 지식과 해결책으로 적절한 사고를 할 수 있는지에 대한 검증

시간 복잡도란?
입력값과 문제를 해결하는 데 걸리는 시간과의 상관관계를 말한다.

입력값→ 함수에서 크기가 변경될 수 있는 값

공간 복잡도란?
입력값과 문제를 해결하는 데 걸리는 공간과의 상관관계를 말한다.

점근 표기법이란?
알고리즘의 성능(효율성)을 수학적으로 표기하는 방법. 점근 표기법(asymtotic notation)은 함수의 증가 양상을 다른 함수와의 비교로 표현하는 수론과 해석학의 방법

점근 표기법의 종류에는 빅오(Big-O)표기법, 빅 오메가(Big-Ω)표기법이 있다.

빅오 표기법은 최악의 성능이 나올 때 어느 정동의 연산량이 걸릴것 인지,
빅오메가 표기법은 최선의 성능이 나올 때 어느 정도의 연산량이 걸릴것인지에 대해 표기

*알고리즘에서 대부분 빅오 표기법으로 분석한다. 최악의 경우를 대비해야 하기 떄문이다.


문제 자체를 이해하기 힘들 때❗

  1. 바로 코드를 작성하지 말고, 문제의 다른 예시들을 떠올리면서 규칙성 생각해보기
  2. 배웠던 자료구조를 활용하면 어떨지 생각해보기
  3. 문제의 특징들을 하나하나 글로 써보기

0개의 댓글