loading
본문 바로가기 메뉴 바로가기
힙(Heap)

1. 힙 (Heap)이란? 힙 : 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리(Complete Binary Tree) 완전 이진 트리 : 노드를 삽입할 때 최하단 왼쪽 노드부터 차례대로 삽입하는 트리 힙을 사용하는 이유 배열에 데이터를 넣고, 최대값과 최소값을 찾으려면 O(n)이 걸림 이에 반해, 힙에 데이터를 넣고, 최대값과 최소값을 찾으면, O(logn)이 걸림 우선순위 큐와 같이 최대값 또는 최소값을 빠르게 찾아야 하는 자료구조 및 알고리즘 구현 등에 활용됨 2. 힙 (Heap) 구조 힙은 최대값을 구하기 위한 구조 (최대 힙, Max Heap) 와, 최소값을 구하기 위한 구조 (최소 힙, Min Heap)로 분류할 수 있음 힙은 다음과 같이 두 가지 조건을 가지고 있는 자..

IT/Heap 2023. 1. 25. 20:23
트리(Tree)

1. 트리 (Tree) 구조 트리 : Node와 Branch를 이용해서, 사이클을 이루지 않도록 구성한 데이터 구조 실제로 어디에 많이 사용되나? 트리 중 이진 트리(Binary Tree)형태의 구조로, 탐색(검색) 알고리즘 구현을 위해 많이 사용됨 2. 알아둘 용어 Node : 트리에서 데이터를 저장하는 기본 요소 (데이터와 다른 연결된 노드에 대한 Branch 정보 포함) Root Node : 트리 맨 위에 있는 노드 Level : 최상위 노드를 Level 0으로 하였을 때, 하위 Branch로 연결된 노드의 깊이를 나타냄 Parent Node : 어떤 노드의 다음 레벨에 연결된 노드 Child Node : 어떤 노드의 상위 레벨에 연결된 노드 Leaf Node : (Terminal Node) : ..

IT/Tree 2023. 1. 23. 12:14
해쉬 테이블(Hash Table)

1. 해쉬 테이블 키(Key)에 데이터(Value)를 매핑할 수 있는 데이터 구조 해쉬 함수를 통해, 배열에 키에 대한 데이터를 저장할 수 있는 주소(인덱스 번호)를 계산 Key를 통해 바로 데이터가 저장되어 있는 주소를 알 수 있으므로, 저장 밑 탐색 속도가 획기적으로 빨라짐 미리 해쉬 함수가 생성할 수 있는 주소(인덱스 번호)에 대한 공간을 배열로 할당한 후, 키에 따른 데이터 저장 및 탐색 지웑 2. 알아둘 용어 해쉬 함수(Hash Function) : 임의의 데이터를 고정된 길이의 값으로 리턴해주는 함수 해쉬(Hash), 해쉬 값(Hash Value), 또는 해쉬 주소(Hash Address) : 해싱 함수를 통해 리턴된 고정된 길이의 값 해쉬 테이블(Hash Table) : 키 값의 연산에 의해..

IT/HashTable 2023. 1. 21. 15:48
👨‍💻 알고리즘 복잡도 표현 방법

1. 알고리즘 복잡도 계산이 필요한 이유 하나의 문제를 푸는 알고리즘은 다양할 수 있음 정수의 절대값 구하기 1, -1 >> 1 방법1 : 정수값을 제곱한 값에 다시 루트를 씌우기 방법2 : 정수가 음수인지 확인해서, 음수일 때만 -1을 곱하기 다양한 알고리즘 중 어느 알고리즘이 더 좋은지를 분석하기 위해, 복잡도를 정의하고 계산함 2. 알고리즘 복잡도 계산 항목 시간 복잡도 : 알고리즘 실행 속도 공간 복잡도 : 알고리즘이 사용하는 메모리 사이즈 가장 중요한 시간 복잡도를 꼭 이해하고 계산할 수 있어야 함. 알고리즘 시간 복잡도의 주요 요소 반복문이 지배합니다. - 자동차로 서울에서 부산을 가기 위해, 다음과 같이 항목을 나누었을 때, 가장 총 시간에 영향을 많이 미칠 것 같은 요소는? 자동차로 서울..

IT/복잡도 2023. 1. 21. 13:08
파이썬(Python)

Python의 특징 - 플랫폼과는 독립적인 언어이다 - 인터프리터 언어이다 - 컴파일러와 인터프리터언어의 차이점 컴파일러 인터프리터 소스코드를 기계어로 먼저번역 해당 플랫폼에 최적화되어 프로그램을 실행 작동방식 별도의 번역과정 없이 소스코드를 실행시점에 해석하여 컴퓨터가 처리할 수 있도록함 실행속도가 빠름 한번의 많은 기억장소 필요 장점 단점 간단히 작성, 메모리가 적게 필요 실행속도가 느림 C, 자바, C++, C# 주요 언어 파이썬,스칼라 - 객체 지향 동적 타이핑 언어 객체 지향언어 : 실행 순서가 아닌 단위 모듈 중심으로 프로그램을 작성 -> 하나의 객체는 어떤 목적을 달성하기 위한 행동과 속성을 가지고 있음 동적 타이핑 언어 : 프로그램이 실행하는 시점에 프로그램이 사용해야 할 데이터에 대한 타..

카테고리 없음 2023. 1. 4. 19:27
프로그래머스 문제풀이 Level 2

1. 마법의 엘리베이터 👉 소스코드 public int solution(int storey) { int answer = 0; int nextCnt = 0; int flag = 0; if(storey = 5 && tmp > 50) { nextCnt = 1; } } if(storey % 10 5) { answer += 10 - (storey % 10); flag = 1; } storey /= 10; // 5일때 다음 자리수 값 if(nextCnt == 1) { storey += 1; nextCnt = 0; } // 5보다 큰수일때 그 다음 자리수 if(flag == 1) { storey += 1; flag = 0; } }..

IT/Lv2 2023. 1. 2. 22:40
이전 1 ··· 31 32 33 34 35 다음
이전 다음

소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 때부자

티스토리툴바

운영자 : 아벡이
제작 : 아로스
Copyrights © 2022 All Rights Reserved by (주)아백.

※ 해당 웹사이트는 정보 전달을 목적으로 운영하고 있으며, 금융 상품 판매 및 중개의 목적이 아닌 정보만 전달합니다. 또한, 어떠한 지적재산권 또한 침해하지 않고 있음을 명시합니다. 조회, 신청 및 다운로드와 같은 편의 서비스에 관한 내용은 관련 처리기관 홈페이지를 참고하시기 바랍니다.