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

park·2022년 11월 7일
0

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

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

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

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

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

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

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

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

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

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


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

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

0개의 댓글