CS 기초 · 기초
알고리즘의 시간 복잡도(Time Complexity)와 공간 복잡도(Space Complexity)는 무엇이며, 왜 중요하게 고려해야 하는지 설명해주세요. 특히 Big O 표기법은 무엇을 의미하나요?
힌트 · 시간 복잡도는 알고리즘 실행 시간, 공간 복잡도는 메모리 사용량을 나타냅니다. Big O는 입력 크기에 따른 알고리즘의 상한 성능을 표현하는 표기법입니다.
시간 복잡도공간 복잡도Big O 표기법알고리즘 효율성자원 최적화
모범답안
알고리즘의 시간 복잡도는 입력 크기에 따라 알고리즘 실행 시간이 얼마나 늘어나는지를 나타내고, 공간 복잡도는 알고리즘이 사용하는 메모리 공간이 얼마나 늘어나는지를 나타냅니다. 이 두 가지를 고려하는 이유는 효율적인 알고리즘을 설계하고 자원을 최적화하기 위해서입니다.
특히, Big O 표기법은 알고리즘의 성능을 분석할 때 입력 크기가 매우 커질 때, 즉 최악의 경우에 실행 시간이나 메모리 사용량이 어떻게 증가하는지를 나타내는 방법입니다. 예를 들어 O(n)은 입력 크기에 비례하여 실행 시간이 증가한다는 의미이고, O(1)은 입력 크기와 상관없이 항상 일정한 시간이 걸린다는 의미입니다. Big O 표기법을 통해 알고리즘의 확장성을 예측하고 성능 병목 지점을 파악하여 개선할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 알고리즘 면접 질문
- 배열(Array)과 연결 리스트(Linked List)의 주요 차이점은 무엇이며, 각각 어떤 상황에서 더 효율적인 자료구조인지 구체적인 예를 들어 설명해주세요.
- 스택(Stack)과 큐(Queue) 자료구조의 정의와 각각 LIFO(Last-In, First-Out) 및 FIFO(First-In, First-Out) 원리를 설명하고, 실제 프로그래밍에서 사용되는 예를 들어주세요.
- 이진 탐색(Binary Search) 알고리즘은 어떻게 동작하며, 이 알고리즘을 사용하기 위한 데이터의 전제 조건은 무엇인가요? 시간 복잡도는 어떻게 되나요?