분류 전체보기

    프로그래밍(코딩)이란?

    목차 프로그래밍이란? 프로그래밍 언어 프로그래밍이란? 흔히 '프로그램을 짠다', '코딩을 한다' 에 해당하는 단어가 프로그래밍이다. 프로그래밍이란 프로그램을 어떠한 프로그래밍 언어(C++, Python 등)를 이용하여 구현하는 것을 말한다. 예를 들어, 1부터 100까지 짝수를 출력하는 프로그램을 아래와 같이 파이썬 코드로 작성해 보았다. for i in range(1, 101): if i%2 == 0: print(i, end=' ')​ 이러한 코드를 작성하는 행위를 '1부터 100까지 짝수를 출력하는 프로그램을 파이썬을 이용하여 프로그래밍했다' 라고 표현할 수 있다. 프로그래밍(Programming)은 컴퓨터 프로그래밍(Computer Programming)의 줄임말이며, 코딩(Coding)이라고도 불..

    [18강] 최소 신장 트리 (MST)

    [18강] 최소 신장 트리 (MST)

    안녕하세요 Gliver 입니다. 이번 글에서는 최소 신장 트리 (MST, Minimum Spanning Tree)에 대해 알아보겠습니다. 목차 최소 신장 트리란? 유니온-파인드 자료구조 크루스칼 알고리즘 정리 최소 신장 트리란? 최소 신장 트리(MST, Minimum Spanning Tree)에 대해서 알아보자. 트리(Tree)란? 트리(Tree)란 노드 N개와 N-1개의 간선으로 이루어져 있으며 모든 노드가 서로 연결되어 있는 구조이다. 즉, 트리는 그래프에 포함되는 개념이며 그래프의 특별한 경우라고 할 수 있다 예를 들어, 아래의 그래프는 간선의 개수가 '노드의 개수-1'이므로 트리라고 할 수 있으며 아래의 그래프는 간선의 개수는 '노드의 개수-1'이지만 노드 D가 다른 노드들과 연결되어 있지 않으므..

    [17강] 사이클이 없는 방향 그래프 (DAG)

    [17강] 사이클이 없는 방향 그래프 (DAG)

    안녕하세요 Gliver 입니다. 이번 글에서는 사이클이 없는 방향 그래프 (DAG, Directed Acyclic Graph)에 대해 알아보겠습니다. 목차 사이클이 없는 방향 그래프 위상 정렬 정리 그래프는 비선형 자료구조이기 때문에 보통 정렬이 불가능하지만 특별한 경우에는 정렬이 가능합니다. 사이클이 없는 방향 그래프일 때 정렬이 가능하며 이때의 정렬을 위상 정렬이라고 합니다. 이번 글에서는 사이클이 없는 방향 그래프(DAG)와 위상 정렬에 대해서 알아보겠습니다. 사이클이 없는 방향 그래프 사이클이 없는 방향 그래프(DAG, Directed Acyclic Graph)는 말 그대로 사이클이 없는 방향 그래프를 의미한다. 사이클이 없는 방향 그래프에서는 정렬이 가능할까? 방향 그래프에서 아래와 같은 상황이..

    [16강] 그래프(Graph) 최단 경로 알고리즘

    [16강] 그래프(Graph) 최단 경로 알고리즘

    안녕하세요 Gliver 입니다.이번 글에서는 그래프(Graph) 최단 경로 알고리즘에 대해 알아보겠습니다. <span style="color: #00000..

    [컴공 3학년] 2022년을 마무리하며

    [컴공 3학년] 2022년을 마무리하며

    안녕하세요 Gliver 입니다. 이번 글에서는 2022년에 대한 회고와 2023년 목표 설정에 대한 내용으로 글을 써보려고 합니다. 목차 2022년을 마무리하며 2023년을 시작하며 2022년을 마무리하며 2022년에 내가 했던 활동들을 방학, 학기로 구분하여 4분기로 나누어 작성해보겠다. 1분기 (01-02월) 2학년을 마치고 겨울방학이 시작하는 시기이다. 겨울방학의 목표는 빅데이터 공부와 관련 활동을 하며 내 적성과 맞는지 확인하는 것이었다. 이때 내가 했던 활동/공부는 다음과 같다. 📔 빅데이터 커리어 가이드북 읽기 📕 Python for Data Analysis 공부 📔 파이썬 머신러닝 완벽 가이드 공부 빅데이터혁신공유대학 동계캠프 참여 빅데이터혁신공유대학 데이터톤 경진대회 참여 나는 개인적으로 ..

    [15강] 그래프(Graph) 순회 (DFS & BFS)

    [15강] 그래프(Graph) 순회 (DFS & BFS)

    안녕하세요 Gliver 입니다. 이번 글에서는 그래프(Graph) 순회 (DFS & BFS)에 대해 알아보겠습니다. 목차 그래프 순회란? 깊이 우선 탐색 (DFS) 깊이 우선 탐색 (BFS) 정리 지난 글에서 그래프를 코드로 표현하는 법에 대해서 알아보았습니다. 이번 글에서는 어떻게 그래프를 순회(탐색)할 수 있는지 알아보겠습니다. 지난 글에서 말했듯이 그래프 탐색에 있어서는 인접 리스트 방식을 이용할 예정임 그래프 순회란? 그래프 순회(탐색)란 그래프 내의 모든 노드를 한 번씩 살펴보는 것을 의미한다. 선형 자료구조에서 탐색 선형 자료구조란 순서가 있는 자료구조를 의미한다. 즉, 배열 같은 경우는 원소들이 인덱스 순으로 구성되어 있으니 선형 자료구조라고 할 수 있다. 이러한 선형 자료구조에서의 탐색은 ..

    [14강] 그래프(Graph) 기본

    [14강] 그래프(Graph) 기본

    안녕하세요 Gliver 입니다. 이번 글에서는 그래프(Graph) 기본에 대해 알아보겠습니다. 목차 그래프를 코드로 표현하기 인접 리스트 (Adjacency List) 인접 행렬 (Adjacency Matrix) 간선 리스트 (Edge List) 정리 지난 글에서 그래프는 노드(정점)와 간선으로 이루어져 있다고 설명하였습니다. 이번 글에서는 이러한 그래프를 어떻게 코드로 표현할 수 있는지 알아봅시다. 그래프를 코드로 표현하기 그래프를 코드로 어떻게 표현할 수 있을까? 그래프는 노드와 간선으로 구성되어 있으므로 노드와 간선을 각각 어떻게 표현할 수 있는지 살펴보자. 노드는 하나의 정점으로 노드의 개수만큼의 공간으로 표현할 수 있다. 간선은 노드와 노드를 선을 잇는 것이므로 간선 1개는 노드 2개로 표현할 ..

    [13강] 그래프(Graph)를 배우는 이유

    [13강] 그래프(Graph)를 배우는 이유

    안녕하세요 Gliver 입니다. 이번 글에서는 그래프(Graph)를 배우는 이유에 대해 알아보겠습니다. 목차 그래프란 무엇인가? 그래서 그래프가 어디에 쓰이는데? 그래프를 배우는 이유 그래프 공부의 상한선 그래프란 무엇인가? 정점과 간선으로 이루어진 구조를 그래프(Graph)라고 칭한다. (위키피디아) 보통 정점은 node 또는 vertex, 간선은 edge라고 부른다 아래의 그림1은 정점과 간선이 둘 다 존재하므로 그래프이지만, 그림2는 간선이 존재하지 않으므로 그래프가 아니다. 간선의 방향 유무에 따라 방향 그래프, 간선의 가중치 유무에 따라 가중 그래프, 서브 그래프를 컴포넌트라고 하는 등 그래프는 굉장히 다양한 개념을 가지는 데 이는 다음 장에서 살펴보도록 하겠다. 그래서 그래프가 어디에 쓰이는데..