코딩테스트준비 32

[C++/ Algorithm] 시간복잡도, 공간복잡도

#1. 시간복잡도복잡도는 시간복잡도와 공간복잡도로 나누어지는데 먼저 시간복잡도에 대해 알아보겠습니다. 시간복잡도란 입력크기에 대해 어떠한 알고리즘이 실행되는데 걸리는 시간이며 주요로직의 반복횟수를 중점으로 측정됩니다. 아니 시간이라고?그렇다면 시간복잡도를 측정하기 위해서 항상 시간을 재야 할까요?만약 어떠한 로직이 있고 그 로직이 걸리는 시간을 재려면 이렇게 재야 합니다. console.time("test")let sum = 0;for (let i = 0; i  하지만 이러한 시간이라는 것은 컴퓨터 사양 등 여러가지 요소에 영향을 받곤 합니다.그래서 시간복잡도를 설명할 때는 시간이 아니라 어떠한 알고리즘이 주어진 입력크기를 기반으로 로직이 몇번 반복되었는가를 중점으로 설명합니다. 예를 들어 다음코드는 어..

알고리즘 2024.06.06

[C++/ Algorithm] 순열과 조합

순열서로 다른 n개의 원소에서 r (단, 0≤ n)개를 중복없이 순서를 고려하여 선택하거나 나열하거나 하는 것을 순열(permutation)이라고 합니다. 예를 들어 집합 {1, 2, 3}의 원소들의 모든 순열을 구한다면{1, 2, 3}{1, 3, 2}{2, 1, 3}{2, 3, 1}{3, 1, 2}{3, 2, 1}로 총 6가지가 나오게 됩니다.   next_permutation 함수C++의 algorithm 헤더에는 n개의 원소의 순열을 구할 수 있는 next_permutation이라는 함수가 있습니다. 기본적 문법은 다음과 같습니다.  // defaultbool next_permutation (BidirectionalIterator first, BiirectionalIterator last);// c..

알고리즘 2024.06.02