본문 바로가기
728x90
반응형

시간복잡도2

[JavaScript] 집합(Set) 자료형 사용하여 시간복잡도 줄이기 a배열을 반복하며 b배열에 a의 값과 일치하는 값이 있다면 a[?] 값을 1로 변경해야 한다. // 예시 데이터let a = [ { id: 1, value: 0 }, { id: 2, value: 0 }, { id: 3, value: 0 }];let b = [ { id: 2, value: 1 }, { id: 4, value: 1 }]; 기존 로직 - 이중 반복문기존에는 배열을 순차적으로 돌며 값을 비교하기 위한 가장 쉬운 방법인 이중 반복문을 사용하였다.a 배열의 크기만큼 (i)를 반복한다.b 배열의 크기만큼 (j)를반복한다.a배열의 i와 b배열의 j번째 값을 비교한다.값이 일치한다면 a[i]를 1로 변경한다. for (let i = 0; i  외부 반복문이 a.length만큼,.. 2024. 8. 29.
[TimeComplexity] 시간 복잡도 💡 알고리즘에 대한 해답을 찾는 것도 중요하지만 시간복잡도를 고려하여 효율적인 코드를 짜는 것도 중요하다. ‘입력값의 변화에 따라 연산을 실행할 때, 연산 횟수에 비해 시간이 얼마만큼 걸리는가?’라는 말이다. 효율적인 알고리즘을 구현한다는 것은 바꾸어 말해 입력값이 커짐에 따라 증가하는 시간의 비율을 최소화한 알고리즘을 구성해야 한다. ❗️Big-O 표기법 Big-O(빅-오) ⇒ 상한 점근 [최악] Big-Ω(빅-오메가) ⇒ 하한 점근 [최선] Big-θ(빅-세타) ⇒ 그 둘의 평균 [중간] Big-O(빅-오) 표기법은 최악의 경우를 고려하므로, 프로그램이 실행되는 과정에서 소요되는 최악의 시간까지 고려할 수 있기 때문에 가장 자주 사용된다. 👉 Big-O 표기법의 종류 O(1) - 일정한 복잡도 O(l.. 2023. 8. 28.
728x90
반응형