본문 바로가기

🌼 TIL

🙇🏻‍♂️ 11/10 내배캠 React 10일차

오늘 할 일

  • JavaScript Deep dive 책 필사하기 (아침 8시)
  • 알고리즘 강의 수강
  • Git,github 강의
  • Python 복습
  • CS 특강

 

계획표

시간 내용 결과
8:00~8:40 Js 아침 필사 ☀️
11:00~12:00 CS특강
13:00~14:00 Python 복습
14:00~16:00 알고리즘 특강
17:00~23:00 알고리즘 강의 및 Git, github 강의 ☀️

 

 

👩🏼‍🌾   오늘의 줍줍 " "

 

chr() 아스키 코드에서 숫자를 문자로 변환 

 

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

우린 시간이 적게 걸리는 알고리즘을 좋아하기 때문에 덜 걸리는 알고리즘이라는 기준을 세우기 위한 계산법.

계산법 : 각 줄이 실행되는 걸 1번의 연산이 된다고 생각하기

ex) 

max_num = array[0]				# 연산 1번 실행
for num in array :				# array의 길이만큼 연산 실행(반복문)
	if num > max_num:			# 비교연산 1번 실행
    	max_num = num			# 대입 연산 1번 실행
        
결론 => 1 + 2 X N 번의 시간 복잡도 실행

결론 

- n과 n^2은 N이 커질수록 더 큰 차이가 난다.

- N의 지수를 먼저 비교해보면 훨씬 빨리 차이를 알 수 있다.

 

 

공간복잡도 : 입력값과 문제를 해결하는데 걸리는 공간과의 상관관계

계산법 : 저장하는 데이터의 양이 1개의 공간을 사용한다고 계산

ex)

alphabet_array = ['a','b','c',...'z']		# 데이터 26개의 공간 사용   
max_occurrence = 0							# 1개 공간 사용 (변수)
max_alphabet = alphabet_array[0]			# 1개 공간 사용 (변수)
	for alphabet in alphabet_array :  		# 사용 X 그냥 반복문일뿐 
    	occurrence = 0						# 1개 공간 사용 (변수)

결론 => 26 + 3 = 29

 

 

시간복잡도 vs 공간복잡도 중 좋은 알고리즘을 위해 더욱 신경써야하는것은?           답) 시간복잡도 

시간복잡도 : 함수의 n값으로 표현 가능

공간복잡도 : 상수(숫자)로 나타나기 때문에

=> 상수보단 n값이 더욱 격차가 나서 효율적인 코드를 만들기 위해선 공간복잡보다 시간복잡도를 유의해야 한다.

 

결론 => 차수(n값)에 비례해서 얼마나 복잡도가 향상하는지 고민만하면됨, 상수는 신경 X / 공간복잡도보다 시간복잡도를 더 신경써야 한다!

 

 

점근 표기법 : 알고리즘의 성능을 수학적으로 표기하는 것. 즉, 알거리즘 "효율성"을 평가하는 방법 

종류 : Big-O / Big-Ω 표기법 

Big-O 표기법 : 최악의 성능이 나올 때 어느 정도의 연산량이 걸릴것인지 표기법 : 0(n)

Big-Ω 표기법 : 최선의 성능이 나올 때 어느 정도의 연산량이 걸릴 것인지 표기법 : Ω(1)

 

Big-O vs Big-Ω 중 항상 중요하게 여겨야 하는 것은? : Big-O표기법

이유 : 항상 최선보단 최악의 성능에 초점을 맞춰야 비교가 가능하기 때문에

Big-O 빅오 표기법을 더욱 신경써야한다

'🌼 TIL' 카테고리의 다른 글

🌱 11/15 내배캠 React 12일차  (1) 2022.11.15
🏃 11/14 내배캠 React 11일차  (1) 2022.11.14
👏🏻 11/09 내배캠 React 9일차  (1) 2022.11.10
😭 11/09 내배캠 8일차  (1) 2022.11.09
🌖 11/08 내배캠 React 7일차  (1) 2022.11.08