2023-03-17 금요일

·2023년 3월 17일
0

Today I Learned

목록 보기
86/114
post-thumbnail

✏️ 무엇을 배웠나


1. 시간복잡도와 공간복잡도

시간복잡도와 공간복잡도는 모두 특정 연산 작업이 얼마나 효율적이냐를 판단할 수 있는 척도로 사용된다.

1) 시간복잡도는 해당 연산이 얼마나 시간이 걸리느냐를 나타내는데, 연산을 완료하기 위해서는 몇 단계의 절차를 밟아야 하는지 그리고 실행 시간은 얼마나 걸리는지를 기준으로 한다.

2) 공간복잡도는 해당 연산에 메모리가 얼마나 필요하냐를 나타내는데, 연산에 필요한 저장 공간과 자료 구조를 기준으로 한다

이 두 가지 모두 빅오를 사용하면, 각각 입력값 크기에 따른 완료 시간과 필요한 메모리를 예상할 수 있다. 이 척도를 활용해 해당 연산의 효율성을 객관적으로 판단할 수 있고, 성능 개선 지표로 사용할 수 있다.

2. 스택과 큐

스택과 큐는 둘 다 내부 구현 코드와 무관하게 각각 후입선출과 선입선출 원칙을 따르는 추상형 자료 구조다.

1) 스택은 후입선출 원칙에 따라 데이터를 꺼낼 때 마지막에 추가한 데이터부터 최초 데이터까지 거슬러 올라가며 꺼낼 수 있다. 이 구조를 활용해서 히스토리 기능을 구현해 볼 수도 있고, 자바스크립트 콜스택이 바로 스택 구조다.

2) 큐는 선입선출 원칙에 따라 데이터를 꺼낼 때 최초 데이터부터 마지막에 추가한 데이터까지 순서대로 꺼낸다. 컨베이터 벨트 같은 것이고 대기열 처리 등 추가 순서대로 처리되어야 하는 작업에 적합하고, 자바스크립트에서는 메시지 큐가 큐 구조다.

🥵 무엇이 어려웠나


1. 빅오 표기법

계산에 굉장히 여러 가지가 있다.

🔎 더 알고 싶은 것 / 보완이 필요한 것


1. 빅오 표기법

빅오 표기법으로 내가 쓴 코드 계산해봐야지.

profile
⛰ 프론트엔드 개발 공부 블로그

0개의 댓글