본문 바로가기

Computer Science30

그래프 자료구조& 알고리즘(BFS, DFS) 목차 1. 그래프 자료구조 1-1. 그래프 용어 1-2. 그래프 유형 1-3. 그래프 표현 1-3-1. 인접 행렬(Adjacency matrix) 방식 1-3-2. 인접 리스트(Adjacency list) 방식 2. 그래프 알고리즘 개요 2-1. BFS 2-2. DFS 컴퓨터공학에서의 자료구조를 배울 때 목표는 스택, 큐, 트리, 그래프 총 4개의 자료구조를 충분히 이해하는 것입니다. 지금까지 이글을 마지막으로, 총 4개의 파트에 걸쳐서 자료구조를 설명드렸습니다. 이번 글에서는 자료구조 파트 마지막으로 그래프 자료구조를 소개하겠습니다. 1) 자료구조 개념 및 고려사항(시간복잡도, 공간복잡도) 2) 어레이, 링크드리스트, 스택, 큐 자료구조 3) 알고리즘: 정렬 알고리즘, 탐색 알고리즘 4) 트리 자료구조.. 2023. 4. 8.
트리 자료구조: 이진, 이진탐색, Balanced Tree 목차 트리 자료구조 1. 이진 트리(Binary Tree) 2. 이진 탐색 트리(Binary Search Tree) 2-1. 이진 탐색트리의 Basic operations 3. Balanced Tree 오늘 소개할 트리 자료구조를 이해하기 위해서는 탐색 알고리즘(Search Algorithm)에 대한 이해가 있어야하기 때문에 아래 글을 먼저 보고 오시는 걸 추천드립니다. 그럼 트리 자료구조와 그래프 자료구조를 알아보겠습니다. 정렬 알고리즘(버블, 퀵)과 탐색 알고리즘(선형, 이진) 목차 알고리즘(Algorithm)이란? 1. 정렬 알고리즘(Sorting algorithms) 1-1. 버블 정렬(Bubble sorting) 1-2. 퀵 정렬(Quick Sort) 2. 탐색 알고리즘(Searching alg.. 2023. 4. 8.
정렬 알고리즘(버블, 퀵)과 탐색 알고리즘(선형, 이진) 목차 알고리즘(Algorithm)이란? 1. 정렬 알고리즘(Sorting algorithms) 1-1. 버블 정렬(Bubble sorting) 1-2. 퀵 정렬(Quick Sort) 2. 탐색 알고리즘(Searching algorithms) 2-1. 선형 검색(Linear Search) 2-2. 이진 탐색(Binary Search) 알고리즘(Algorithm)이란? 컴퓨터공학에서의 알고리즘이란 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것입니다. 일반적으로 알고 있는 유튜브 알고리즘이랑은 조금 다른 개념입니다. 알고리즘은 입력, 출력, 명확성, 유한성, 효율성의 조건을 만족해야하고, 자연어, 의사코드(pseudo code: 정확하진 않은데 의도만 설명하는 코드), 순.. 2023. 4. 8.
자료구조: 배열, 연결리스트, 스택, 큐 자료구조란, 데이터를 효율적으로 저장하고, 관리하며, 사용하기 위한 구조입니다. 그 중에서도 가장 기본이 되는 자료구조는 배열, 연결리스트, 스택, 큐, 트리, 그래프이죠. 어떤 자료구조를 쓰느냐에 따라 프로그램의 성능이 크게 달라질 수 있습니다. (앞선 파트에서 자세하게 설명한 바 있습니다.) 자료구조란? (feat. 시간복잡도, 공간복잡도) 목차 1. 자료구조(Data Sturcture)란? 1-1. 자료구조의 종류 2. 시간복잡도와 공간복잡도 2-1. 시간복잡도(Time complexity) 2-2. 공간복잡도(Space complexity) 2-2-1. 빅오표기법(Big Oh) 1. 자료구조 (Data Structure)란? coduking.tistory.com 이 자료구조들은 프로그래밍에서 가장.. 2023. 4. 6.
자료구조란? (feat. 시간복잡도, 공간복잡도) 목차 1. 자료구조(Data Sturcture)란? 1-1. 자료구조의 종류 2. 시간복잡도와 공간복잡도 2-1. 시간복잡도(Time complexity) 2-2. 공간복잡도(Space complexity) 2-2-1. 빅오표기법(Big Oh) 1. 자료구조 (Data Structure)란? 자료구조(Data Structure)를 알아보기 앞서, 우선 자료(Data)는 무엇일까요? 우리가 학교에서 조별과제를 한다고 가정해보겠습니다. 그러면 발표를 하기 위해 자료조사를 해야겠죠? 조별과제를 할 때, 발표자와 PPT담당자를 제외한 나머지 팀원들은 보통 자료조사를 하여 PPT담당자에게 보내줍니다. 그러면 PPT담당자는 자료들을 취합해서 보기 좋게 정리한 뒤에 발표자료를 만들죠. 결국 '자료(data)'라는 것.. 2023. 4. 6.
추상 자료형(ADT)이란? 개념과 특징 추상 자료형(Abstract Data Type, ADT)이란? 추상 자료형을 설명하기 전에 우선 추상화(Abstraction)가 무엇인지 알아보겠습니다.(추상화는 참고로, 컴퓨터 사고력 파트에서 나오는 개념입니다.) 추상화란, 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내고, 그것을 수치화 하는 것을 뜻합니다. 즉, 문제에서 해결해야할 주요한 정보를 수치화 하는 과정이죠. 예를 들어, 쇼핑몰 사이트를 만든다고 가정해보겠습니다. 쇼핑몰 사이트에서는 고객 정보, 판매 정보 등이 필요하겠죠? 이 때, 고객 정보에는 아이디, 비밀번호, 주소, 전화번호, 구매목록, 직장, 자산 등이 포함될 수 있습니다. 여기에서 쇼핑몰 사이트에서의 고객 정보로 불필요한 세부사항인 직장, 자산 같은 .. 2023. 4. 5.
기본 프로그래밍 개념: 언어, 변수, 자료형, 연산자, 제어구조, 함수, 모듈 목차: 기본 프로그래밍 개념(Basic Programming Concepts) 1. 프로그래밍 언어(Programming Language) 2. 변수(Variables) 3. 자료형(Data Types) 4. 연산자(Operators) 5. 제어구조(Control structures) 6. 함수(Funtions) 7. 모듈(Modules) 1. 프로그래밍 언어(Programming Language) 한국어, 영어같은 '언어'를 통해 우리는 서로 소통할 수 있습니다. 사람이 쓰는 언어를 '자연어(Natural Language)'라고 하죠. 그렇다면 컴퓨터와 사람이 소통하기 위한 언어는 무엇일까요? 바로 '프로그래밍 언어(Programming Language)'입니다. 프로그래밍 언어도 자연어처럼 문법(sy.. 2023. 4. 5.
컴퓨터공학: 컴퓨팅 사고력과 문제해결 목차 컴퓨터공학(Computer Science and Engineering, CSE)이란? 컴퓨팅 사고력(Computational Thinking, CT) 문제해결(Problem Solving) 컴퓨터공학(Computer Science and Engineering, CSE)이란? 컴퓨터공학은 계산, 자동화 및 정보를 연구하는 학문입니다. 컴퓨터공학의 이론적인 분야는 알고리즘, 계산 이론, 정보 이론, 자동화 등이 있고, 실용적인 분야는 하드웨어 및 소프트웨어의 설계와 구현 등이 있습니다. 학부 레벨에서의 컴퓨터 공학에서 보통 중요하게 다루는 분야는 총 7가지 정도로 설명할 수 있습니다. Basic Concepts of Programming Language + 특정언어 하나(C, Java, Python 등.. 2023. 4. 4.
빅데이터 관련 직업 5가지: 직무, 필요 역량 빅데이터 관련 직업, 어떤 것들이 있는지 많이 헷갈리시죠? 이 글에서는 빅데이터 관련 직업 5가지를 소개하면서 실제 하는 일과 그에 따른 필요 역량을 총 정리해서 설명드릴겁니다. 요즘 가장 핫하고, 대표적인 직업 5가지인 데이터 사이언티스트, 데이터 엔지니어, 데이터 리서처, 데이터 분석가, MLOps로 나눠서 설명드리겠습니다. 1. 데이터 사이언티스트 직무 데이터를 수집, 전처리, 분석하고, 이를 시각화하며 인사이트를 도출 머신러닝 및 딥러닝 모델을 개발하고, 이를 통해 예측 모델을 만들고 최적화 비즈니스 문제를 데이터로 해결하며, 의사 결정에 활용 💡데이터 사이언티스트는 비즈니스 문제를 포뮬레이션*하고, 그렇게 나온 데이터 분석 문제를 전처리 및 EDA**합니다. 그리고 나서 분석할 데이터를 모델링 .. 2023. 4. 3.
코딩이란? 개념, 기초 문법, 배워야 하는 이유 코딩이란? 💡 코딩의 개념은 컴퓨터에게 시키고 싶은 작업들을 문서형태로 작성하여 명령하는 것입니다. 우리가 카페에서 처음으로 알바를 시작한다고 가정해보겠습니다. 그런데, 출근 첫 날 일을 가르쳐줄 매니저가 출근을 하지 않았어요. 그러면 일을 배운 적이 없어서 이제부터 어떤 일을 어떻게 해야하는지 전혀 모르겠죠? 하지만 이 카페는 매니저가 출근을 하지 않아도 출근 첫날 일을 바로 혼자서 할 수 있는 프로세스를 만들어놓았습니다. 그것은 바로 '매뉴얼'이었죠. 커피머신 조작법, 가장 먼저 해야하는 일, 컵들의 위치 등을 전부 다 세세하게 적어놓았습니다. 누구나 알아먹을 수 있게 말이죠. 그 덕분에 매뉴얼만 보고도 일을 척척 해낼 수 있게 되었어요. 그렇습니다. '코딩'을 한다는 것은 '매뉴얼'을 작성하는 일과.. 2023. 4. 1.
챗GPT 출시, 동작 원리, 활용 사례 세상을 뒤흔든 챗GPT(Chat GPT) 출시 2022년 11월 30일에 OpenAI에서 GPT-3.5를 출시하여, 5일 만에 100만 사용자 돌파 넷플릭스가 3.5년이 걸렸고, 인스타그램이 2.5개월이 걸렸다. 출시 2개월 만에 월간 활성 사용자 수(MAU) 1억명 돌파. 틱톡은 9개월, 인스타그램은 30개월 걸렸다. 2023년 3월 15일에 GPT-4가 출시되었다. 이후, 생물 올림피아드 경시대회에서 하위 31% 상위 1%로 상승하는 결과를 보여주었다. GPT4가 출시되면서, 창의성이 더 올라갔고, 그림으로 입력받을 수 있게 되었고, 그림 내용을 바탕으로 대화, 해석이 가능해졌고, 수학문제 풀이가 가능해졌으며(심지어 정답 일부러 안 알려주면서 과외를 시켜주기도 하고), 약 50페이지 분량의 명령어로 .. 2023. 3. 30.
인공지능의 역사: 연대별 주요 인물과 핵심 사건 인공지능(AI)은 현재 매우 인기 있는 분야 중 하나이지만, 그 역사는 오랫동안 이어져 왔습니다. 이 글에서는 1950년대부터 2020년대까지 주요 인물 중심으로 인공지능의 역사를 살펴보고, 각 시대의 핵심 사건을 함께 살펴보겠습니다. 1950년대: 앨런 튜링과 다트머스 회의 앨런 튜링(Alan Turing): 튜링은 컴퓨터 과학 분야의 중요한 인물 중 하나로, 1950년에는 이라는 논문을 발표하였습니다. 이 논문 속에서 튜링테스트(인공지능 실험)를 제안한 것이 인공지능의 상징적 시작점 입니다. 다트머스 회의(Dartmouth Conference): 1956년, 인공지능의 탄생을 기념하기 위해 다트머스 대학에서 인공지능 학술 회의가 열렸습니다. 이 회의에서 인공지능의 정의와 연구 방향 등이 논의되었습니다.. 2023. 3. 28.