Algorithm/자료구조 이론 5

자료구조 :) Stack과 Queue를 이해한다.

goal 자료구조 Stack과 Queue를 이해한다. 자료구조를 공부하는 이유 "극강의 효율 추구" 어떤 언어를 배우던 배열의 개념은 공부하게 되는데, 배열의 개념을 안다는 가정하에 설명을 하겠다. [1, 2, 3, 4, 5] 처럼 숫자가 저장된 배열이 있다고 생각해보자. 그리고 반복문을 이용해 처음부터 탐색을 시작하여 마지막 요소 값을 찾을 것이다. 앞선 배열의 요소의 개수는 5개이니 반복문에 의해서 배열을 총 5번을 탐색하여 마지막 요소를 찾는다. 만약 배열의 요소가 1만개가 되는 상황이면 어떨까? 반복문은 1만번을 탐색하게 될 것이다. 우리의 목적은 마지막 요소를 찾는 것이 목표인데 는 것은 참 아이러니하면서 눈살이 찌풀어지지 않는가? 이러한 예시가 비효율적인 프로그램이라고 할 수 있으며 같은 문제..

자료구조 이론 :) 선택정렬, 버블정렬, 삽입정렬을 알아보자

goal 선택정렬, 버블정렬, 삽입정렬을 이해한다. 1 ] 선택정렬(Selection Sort) 선택 정렬은 해당 자리를 이미 선택하고 그 자리에 오는 값을 찾는 것이다. ※ 선택정렬은 제자리 정렬(in-place sorting) 알고리즘의 하나이다. 제자리 정렬이란, 입력 배열(정렬되지 않은 값들)이회에 다른 추가 메모리를 요구하지 않는 정렬 방법이며 해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 어떤 원소를 넣을지 선택하는 알고리즘 1. 선택정렬의 과정 해당 과정은 선택정렬을 이용하여 배열을 오름차순으로 표현하는 과정을 나타낸다. 1. 선택정렬을 이용하여 배열을 오름차순으로 표현하는 과정 말로 표현하기 N번째 인덱스를 고정시킨다. ....(1) N번째 인덱스와 이후의 인덱스들과의 값을 비교한다...

자료구조 이론 :) Stack이해하기

goal Stack을 이해한다. Stack 및 Queue 다시 정리 1] Stack 1. Stack 이해하기 Stack은 블럭 쌓기 이다. 누군가 Stack에 대해서 묻는다면 한 문장으로 stack은 블럭 쌓기라고 이야기해주고 싶다. 현실 세계의 (예)로 이해하기 현실에서 같은 모양의 4개의 블럭을 하나의 상자에 쌓는다고 가정한다. 쌓기를 시작하면 첫 번째 블럭, 두 번째 블럭, 세 번째 블럭, 네 번째 블럭으로 쌓이게 될 것이다. 반대로 이 블럭들을 빼면 가장 먼저 나오는 순서대로 네 번째 블럭, 세 번째 블럭, 두 번째 블럭, 첫 번째 블럭이 될 것이다. 이 개념 자체가 Stack이다. Stack의 자료구조 관점 자료구조 관점에서 Stack은 첫 번째 들어간 블럭이 가장 늦게 나온다는 것을 이유로 L..