목차/차례
1. n개의 수로 구성된 ... 알고리즘을 작성하시오.
3. n개의 원소로 구성된 집합에서 3개의 원소를 ... 알고리즘을작성하시오.
5. 정수 2개의 ... 알고리즘을 작성하시오.
7. 거의 완전한 이진트리(almost complete binary tree)가 ... 알고리즘을작성하시오.
12. k를 양의 정수라고 하자. n개의 서로 다른 정수로 ... 알고리즘을 작성하시오.
14. 입력 크기가 n인 문제를 푸는 Alg1과 Alg2라는 두 개의 알고리즘이 있다. Alg1의 실행시간은 마이크로세컨드(1백만 분의 1초)이고... 몇 번 Alg2로 돌려야 개발을 정당화(개발비를 복구)할 수 있을까
15. f(n)=n^2+3n^3 ... 모두 속함을 증명하시오.
18. p(n)=a_kn^k ... 증명하시오.
22. 다음 함수를 복잡도 카테고리별로 묶으시오.
25. 입력 크기가 n=1,000인 문제를 푸는데 1분이 ... 다음과 같을 때 각각 어떻게 될까
28. 시간복잡도가 (2^n)인 알고리즘 A를 사용하여 ... 이 문제를 해결할 수 있으리라 생각합니까
34. 아래 중첩루프(nested loop)의 시간복잡도 T(n)은 ... 즉, 어떤 양의 정수 k에 대해서, n=2^k이다.
40. f(n)과 g(n)은 점근적으로 양의 함수라고 가정하고 다음을 증명하시오.
본문/내용
1. n개의 수로 구성된 ... 알고리즘을 작성하시오.
n개의 수로 구성된 집합에서 가장 큰 수를 찾는 알고리즘은 여러 가지 방법으로 접근할 수 있지만, 기본적인 아이디어는 리스트의 각 원소를 순회하면서 가장 큰 값을 추적하는 것이다. 이를 위해 반드시 필요한 것은 비교 연산이다. 알고리즘의 시작 부분에 리스트가 비어있지 않다는 가정을 두고, 가장 큰 수를 저장할 변수를 초기화한다. 보통 이 변수는 리스트의 첫 번째 원소로 설정하는 것이 일반적이다. 리스트의 두 번째 원소부터 시작해 마지막 원소까지 반복문을 통해 순회한다. 각 원소에 대해 현재 저장된 최대값과의 비교를 수행하고, 만약 현재 원소가 더 크다면 최대값을 업데이트한다. 이렇게 리스트의 모든 원소를 확인한 후에는 가장 큰 값을 저장한 변수를 반환하면 된다. 이 알고리즘은 O(n)의 시간 복잡도를 가지며, 리스트의 크기가 커질수록 수행 시간은 길어지지만, 각 원소를 단 한 번만 방문하기 때문에 효율적이다. 이러한 방식의 장점은 구현이 간단하고 이해하기 쉽다는 점이다. 재귀적 접근 방식으로 구현할 수도 있지만, 이 경우에는 스택 메모리를 추가로 소모하게 되어 비효율적일 수 …