본문 바로가기

분류 전체보기

(28)
신입 개발자 필기테스트 : 비트 연산 보호되어 있는 글입니다.
신입 개발자 기술면접 : C++ 정렬 총정리 (버블, 삽입, 선택, 퀵, 힙, 병합) 화이트보드나 종이나 비쥬얼 스튜디오에 작성하면서 설명할 수 있어야 합니다. 버블, 삽입, 선택 알고리즘은 모두 기본적인 정렬 알고리즘으로, 대규모 데이터셋에 대해서는 비효율적일 수 있습니다. 그러나 간단한 사용 사례나 작은 데이터셋에는 여전히 유용할 수 있습니다. 데이터가 이미 부분적으로 정렬되어 있거나, 데이터의 양이 적을 때는 삽입 정렬이 다른 두 알고리즘에 비해 더 빠를 수 있습니다. 합병 정렬은 모든 경우에서 O(NlogN) 의 시간 복잡도를 유지하지만, 추가 메모리 요구와 캐시 효율 문제로 인해 평균적인 성능이 퀵 정렬보다 느릴 수 있습니다. 합병 정렬과 퀵 정렬은 둘 다 효율적인 정렬 알고리즘이지만, 작동 방식에 몇 가지 중요한 차이점이 있습니다. 작동 원리: 합병 정렬은 배열을 반으로 나누고..
신입 개발자 기술면접 : C++ 05 (손코딩: Heapify, 최대힙, 이진탐색) 안녕하세요, 쫀냐미입니다. 손코딩은 처음이라서요 ... 틀린 내용이 있다면 댓글로 알려주시면 감사하겠습니다 (_ _ ) 🗣️ Heapify 코드를 작성해보세요 #include using namespace std; void swap(int& a, int& b) { int temp = a; a = b; b = temp; } int num = 9; int heap[9] = {7, 6, 5, 8, 3, 5, 9, 1, 6}; int main() { for (int i = 1; i < num; i++) { int c = i; do { int root = (c - 1) / 2; if (heap[root] < heap[c]) { swap(heap[root], heap[c]); } c = root; } while (c..
가비지 컬렉션 (Garbage Collection, GC) 가비지 컬렉션이란? 프로그래밍 언어에서 사용되지 않는 메모리를 자동으로 검출하고 회수하는 프로세스입니다. 주로 메모리 관리가 필요한 언어에서 사용되며, 개발자가 수동으로 메모리를 관리하는 부담을 줄여줍니다. 가비지 컬렉션을 사용하는 주요 언어 Java 는 가장 대표적인 가비지 컬렉션을 사용하는 언어입니다. Java의 GC는 런타임에 실행되며, 참조되지 않는 객체들을 자동으로 찾아 메모리를 해제합니다. GC의 실행 시점은 예측할 수 없으며, 때로는 성능에 영향을 줄 수 있습니다. C# 또한 .NET 프레임워크의 일부로 가비지 컬렉션을 제공합니다. Java와 유사하게, 사용되지 않는 객체들을 자동으로 찾아 메모리를 해제합니다. C#의 GC는 세대별 가비지 컬렉션을 사용하여 메모리 관리의 효율성을 높입니다. ..