본문 바로가기

Computer/자료구조 & 알고리즘

(4)
자료구조와 알고리즘 - 스택과 큐(1) 1. 스택 (Stack) - 한쪽 끝에서만 item(항목)을 삭제하거나 새로운 item을 저장하는 자료구조 = 후입선출(LIFO: Last In First Out) - 스택 사용 예시: 회문 검사,후위표기법수식 계산, 미로찾기,트리의 노드 방문,그래프의 깊이우선탐색 등 - 2 가지의 주요 연산을 제공한다 push: 새로운 item을 저장하는 연산 pop: 아직 제거되지 않은 가장 최근에 삽입된 요소 제거 2. 큐(Queue) - 한쪽 끝에는 item 추가 연산이, 다른 반대쪽 끝에는 삭제가 가능한 자료구조 = 선입선출(FIFO: First In First Out) - 큐 사용 예시: 네트워크 프린터, cpu 태스크 스케줄링,이진트리의 레벨순회,그래프의 너비우선탐색 등 참고자료 자바와 함께하는 자료구조의 ..
자료구조와 알고리즘 - 배열과 리스트(2) 1. 배열 - Trappingg Rain Water 풀이 -문제출처:https://leetcode.com/problems/trapping-rain-water/ Trapping Rain Water - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com - > 높이를 입력받아 비 온 후 얼마나 많은 물이 쌓일 수 있는지 계산하라. - https://www.geeksforgeeks.org/trapping-rain-water/ 참고 java // 리트코드 빗물 트래핑 cla..
자료구조와 알고리즘 - 배열과 리스트(1) 1. 배열과 동적 배열 배열 : 동일한 타입의 원소들이 연속적인 메모리 공간에 할당되어 각 항목이 하나의 원소에 저장되는 자료구조 크기가 고정되어 있고, 한번 생성한 배열은 크기를 변경할 수 없다. 배열의 인덱스를 사용하여 어느 위치에나 O(1)에 조회가 가능하다 새 항목이 중간에 삽입되거나 중간에 있는 항목을 삭제하면 항목들을 뒤 혹은 앞으로 이동시켜야 하므로 삽입이나 삭제 연산은 O(1)시간에 수행할 수 없다. 배열은 미리 정해진 크기의 메모리 공간을 할당 받은 뒤 사용해야 하므로, 빈자리가 없어 새 항목을 삽입할 수 없는 상황(Overflow)에 직면할 수 있다. 이러한 상황을 해결하고자 크기를 지정하지 않고 자동으로 리사이징하는 배열인 동적 배열이 등장했다. 동적 배열: 프로그램이 실행되는 동안 ..
자료구조와 알고리즘 - 시작하기 전에(1) 1. 자료구조와 추상 데이터 타입 자료구조: 일련의 동일한 타입의 데이터를 정돈하여 저장한 구성체. 프로그램에서 저장하는 데이터에 대해 탐색,삽입,삭제 등의 연산을 효율적으로 수행하기 위해 사용된다. > 각 원소들이 논리적으로 정의된 규칙에 의해 나열 추상 데이터 타입(ADT): 데이터와 그 데이터에 대한 추상적인 연산으로 구성. ( 여기서 '추상'의 의미= 연산을 구체적으로 어떻게 구현해야 한다는 세부 명세를 포함하지 않는다) > 순수하게 기능이 무엇인지만 나열 둘 사이의 관계는 건축설계도와 건축물의 차이로 이해하면 편하다. 2. 수행 시간 분석 자료구조의 효율성은 자료구조에 대해 수행되는 연산의 수행되는 연산의 수행시간으로 측정할 수 있다. 이는 알고리즘의 성능을 측정하는 방법과 동일하다. 대부분은 ..