728x90
반응형

컴퓨터/알고리즘&자료구조

총 10개의 포스트

컴퓨터/알고리즘&자료구조(10)

  1. 자료구조 - Queue (큐)

    서론 Stack의 자료구조와 반대되는 개념인 Queue는 마치 컨베이어 벨트와 같은 자료구조입니다. 순서대로 데이터가 쌓이며 먼저 들어온 데이터부터 처리를 하는 형식의 자료구조입니다. FLFO 구조의 형태 - Fist In First Out 큐(Queue)의 자료구조는 보통 FLFO의 구조라고 많이 합니다. FLFO 구조는 컨베이어 벨트 또는 은행 창구와 같이 일처리를 하는 형태를 일컫습니다. 형태와 용어 자료구조 Queue의 형태를 시각화하면 아래와 같습니다. Front - Queue자료 구조의 가장 앞부분을 가리키는 용어 Rear- Queue자료 구조의 가장 뒷부분을 가리키는 용어 Put(Insert) - Queue자료 구조에 데이터를 삽입 Rear의 뒷자리에 삽입되며 Rear의 위치가 변경된다. G..

    2022.03.26

    컴퓨터/알고리즘&자료구조

    Commnet

  2. 자료구조 - Set

    Set이란? Set형태의 자료구조는 List와 Map의 사이의 개념 정도의 자료구조입니다. 지난 자료구조들을 간략하게 정의해보자면 아래와 같습니다. List 데이터를 순서대로 저장하는 자료구조 (값의 중복은 허용됨) Map 데이터를 Key 와 Value의 형태로 저장하는 자료구조 (Key의 중복은 허용되지 않음) Set은 기본적으로 순서대로 데이터를 저장하지 않습니다. 하지만 List의 형태와는 달리 값의 중복을 허용하지 않습니다. 다시 정리하자면 다음과 같습니다. Set은 중복값을 삽입할 수 없다. Set은 기본적으로 특정한 순서대로 데이터를 저장하지 않는다. 간단하게 집합의 개념의 구현체이다. 흔히 자료구조로 불리는 Set은 수학에서 배운 집합이라 생각하시면 이해가 편합니다. 단순하게 메모리 공간에서..

    2021.11.02

    컴퓨터/알고리즘&자료구조

    Commnet

  3. 알고리즘 - 재귀함수 (Recursion Funtion)

    재귀 함수란? - Stack의 개념을 활용한 함수의 반복 호출 재귀 함수, 재귀 호출로 불리는 재귀의 개념은 어떠한 함수에서 자기 자신을 다시 호출하여 작업을 수행하는 방식의 함수입니다. Stack처럼 함수의 정보가 하나씩 쌓이면서 종료 조건에 도달한 순간 계속해서 하나씩 처리해 나가는 개념입니다. 이런 재귀의 개념을 이용하면 많은 해결하기 위해 많은 과정을 논리적으로 표현하여 소스코드를 간결화할 수 있습니다. 다만, 설계상의 오류로 함수를 무한히 호출을 하던가, 너무 많이 함수의 호출이 반복되면 해당 문제를 해결하기 위해 너무 많은 자원의 소모, 부하를 줄 수 있게 되어 주의가 필요합니다. 재귀 함수의 특징을 정리하자면 다음과 같습니다. 재귀 함수란 자기 자신을 호출하는 형태의 함수 개념들을 일컫는다...

    2021.10.29

    컴퓨터/알고리즘&자료구조

    Commnet

  4. 자료구조 - MAP(맵)

    Key와 Value로 이루어진 자료구조 순자적으로 메모리에 데이터를 저장하는 배열과 리스트와는 달리 Key와 Value로 구성되어 있는 개념의 자료 구조에 대하여 알아보도록 하겠습니다. Key(키)와 Value(값)이 쌍으로 이루어진 자료구조 그림처럼 키와 값이 하나의 쌍으로 연결되어 있어 키를 통해 값에 접근을 할 수 있도록 만들어진 자료 구조입니다. 흔히 key와 value가 메칭 되는것을 맵핑(mapping)한다고 일컫습니다. Key의 중복을 허용하지 않아야 된다. Key는 Map 자료구조에서 대응하는 값을 찾기 위한 요소로 중복을 허용하면 안 됩니다. 만약 중복이 된다면 접근하는데 문제가 생길 수 있기 때문입니다. Map 자료구조는 왜 사용하는가? List형태의 자료구조들은 순서대로 값을 차곡차곡..

    2021.10.25

    컴퓨터/알고리즘&자료구조

    Commnet

  5. 알고리즘 - 정렬 기초 - 버블정렬(Bubble sort)

    정렬 알고리즘의 가장 기본 순차적으로 들어가 있는 데이터들을 담는 다양한 자료구조에서 담겨 있는 데이터들을 사용자에 의도에 따라 정렬을 하는 것은 어떻게 보면 효율적으로 데이터를 운영하는 데에 있어 필수적입니다. 본 포스트에서는 정렬을 구현하기 위한 가장 기본적인 개념인 버블 정렬 또는 거품 정렬이라 부르는 알고리즘을 공부해 보도록 하겠습니다. Swap을 조건을 걸어 연속적으로 한다면 그것이 버블정렬 알고리즘 - Swap Swap Swap은 영문적 의미로 바꾸다, 교환하다의 의미를 갖고 있는 단어 입니다. 그리고 프로그래밍에서 Swap또한 바꾸다, 교환하다의 개념을 일컫고 있습니다. 현실에서 사람 A가 사과를 가지고 있 blog-of-gon.tistory.com 컴퓨터에서 어떠한 데이터 구조에 정렬을 구..

    2021.09.26

    컴퓨터/알고리즘&자료구조

    Commnet

  6. 자료구조 - List(리스트)와 종류

    List 개념 이해하기 자료구조 중 하나인 List는 배열의 한계를 극복할 수 있는 강력한 자료구조 중 하나이며 데이터를 단순하지만 효율적으로 다룰 수 있는 자료구조입니다. List는 Array처럼 어떠한 데이터들을 묶기위한 개념입니다. 배열과 대표적으로 다른 특징은 아래와 같습니다. 데이터를 담을 공간의 추가가 가능하다 ( 배열은 초기 공간을 지정하기 때문에 한정적이다.) 데이터를 담을 공간의 가능하다 ( 물론, 배열은 데이터가 담기는 공간의 값은 변경이 가능하나 그 공간 자체를 삭제할 수 없습니다) 가장 기본적이고 대표적인 자료구조이기 때문에 다양한 언어에서 List의 개념을 적용한 다양한 자료구조들을 제공하고 있는 경우가 많습니다. 본문에서는 이 List의 자료구조의 2가지 종류에 대해서 장단점을 ..

    2021.09.06

    컴퓨터/알고리즘&자료구조

    Commnet

  7. 자료 구조 - 배열(Array)

    Array( 배열 ) 컴퓨터 공학에서 사용되는 가장 기초적인 자료구조인 배열에 대해 알아보도록 하겠습니다. 바로 배열입니다. 이 배열은 동일한 종류의 자료들을 모으는 공간의 개념입니다. 배열을 선언하기 위해서는 어떠한 종류의 자료형을 담을 공간인지 그리고 그 공간의 크기는 얼마나 되는지를 알려주어 선언을 하게 됩니다. 정리하자면 아래와 같습니다. 배열은 동일한 자료형을 담아두기위한 고정된 공간이다. 배열을 선언하기 위해서는 담아두기위한 자료의 종류와 몇개를 담을 공간인지의 크기에 대한정의가 필요합니다. 배열은 선언 시점에서 공간의 크기를 정의하기 때문에 공간의 크기를 늘리거나 줄이기 어렵습니다. 또한 선언한 시점의 자료형만을 담을 수 있는 공간입니다. 위의 정리한 내용처럼 배열은 정말 단순한 개념으로 구..

    2021.09.05

    컴퓨터/알고리즘&자료구조

    Commnet

  8. 자료구조 - Stack(스택)의 개념

    Stack(스택) Stack은 사전적 의미로 쌓다, 포개다, 채우다를 의미합니다. 자료구조 개념의 하나인 Stack은 바로 쌓아 올리는 개념입니다 한번 쌓아 올리다를 상상해 볼까요? 이사를 하기 위해 박스 안에 책을 아래서부터 하나씩 쌓아 올린다. 이사된 집에 책을 꺼내기위해 박스 안에 책을 위에서부터 하나씩 꺼낸다. 이게 바로 스택 자료구조의 기본적인 개념입니다. 아래서 부터 차곡차곡 올라가고, 위에서 부터 하나씩 제거가 되는 것입니다. Stack의 특징 - LIFO 보통 Stack의 특징이라고 하면 후입 선출의 또는 LIFO의 개념이라고 말합니다. 후입 선출, List In First Out(LIFO)은 결국 어떠한 일이 계속 쌓이면 마지막에 있는 일부터 처리를 하는 개념입니다. Stack의 이 과정..

    2021.06.24

    컴퓨터/알고리즘&자료구조

    Commnet

  9. 알고리즘 - Swap

    Swap Swap은 영문적 의미로 바꾸다, 교환하다의 의미를 갖고 있는 단어 입니다. 그리고 프로그래밍에서 Swap또한 바꾸다, 교환하다의 개념을 일컫고 있습니다. 현실에서 사람 A가 사과를 가지고 있고 사람 B가 바나나를 가지고 있다면 서로 교환을 하면 됩니다. 프로그래밍에서 서로 교환을 하는 말처럼 간단하지 않습니다. 2가지 변수 A와 B를 선언하면 그림과 같이 메모리 공간위에 올라올 것입니다. int A = 5; int B = 10; 소스코드의 연산을 통해서 두 값을 변경을 한번 해보겠습니다. A = B ; B = A ; A = B ; 즉 A라는 메모리 공간에 B의 값 10을 대입 이미 A = B 라는 대입연산을 하였기 때문에 변수 A에의 값은 5에서 10으로 변경이 됩니다. 우리의 목적은 A 와 ..

    2021.06.10

    컴퓨터/알고리즘&자료구조

    Commnet

  10. 알고리즘 & 데이터구조

    알고리즘? 데이터 구조? 자료구조? 프로그래밍을 공부하다 보면 한 번씩은 들어보는 말입니다. 과연 이 녀석들은 무엇일까요? 알고리즘 그리고 데이터 구조에 대하여 조금 알아보고 도대체 왜 필요한지 알아보도록 합시다. 알고리즘 알고리즘은 - 어떠한 문제를 해결하기 위한 절차 또는 방법을 일컫는 단어입니다. 예를 들어 아침에 최단거리로 출근하기 위한 대중교통 수단을 찾는 것도 알고리즘이라고 말할 수 있습니다. 하지만 프로그래밍에서 알고리즘은 조금 더 심화돼서 바라볼 필요가 있습니다. 어떠한 문제점을 찾고 해결방법을 떠올린 후 프로그래밍에서 적용하여 구현까지 시켜야 프로그래밍에서 완벽한 알고리즘이라고 할 수 있습니다. 현재 이미 널리 알려진 알고리즘 기법들이 존재합니다. 개념에 대해서 배우고 어떠한 문제가 찾아..

    2021.06.09

    컴퓨터/알고리즘&자료구조

    Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :

1
728x90
반응형