분류 전체보기

    [논문리뷰] Everybody Dance Now

    Everybody Dance Now #MotionTransfer #videotovideotranslation #GAN Dataset: a variety of videos, enabling trained amateurs to spin and twirl like ballerinas, perform martial arts kicks, or dance as vibrantly as pop stars Transfer motion between two video subjects in a frame-by-frame manner > mapping between images of two inidividuals > discover an image-to-image translation between source and tar..

    2020 Winter) 서울대 융합과학기술원 인턴 후기

    2020 Winter) 서울대 융합과학기술원 인턴 후기 본 글은 필자가 서울대 융합과학기술원에서 인턴을 직접 해보고 나서 느낀점과 생활, 합격 전후를 적은 글입니다. 합격 전 대학원에 진학하기 전에 랩실 인턴을 겪어보고 싶어서 지원하게 되었다. 매도 미리 맞으면 나을 것 같다고 생각되어 무작정 지원했다. 큰 뜻을 가진 것은 아니고 3학년 겨울방학을 의미있게 보내보고 싶어서 지원하게 되었다. 마감되기 전부터 계속 눈여겨보다가 마감되기 한 3시간 전에 후다닥 쓰고 제출했다. 이후에 합격했다는 메시지를 받았고 활동을 시작하였다. 합격 팁들 교수님 픽으로 뽑히는 거라 지원자들 사이에서는 어느정도의 경쟁률이 있다고 생각합니다.(학점은 기본으로 챙기는게 좋을 것 같고, 결국에는 교수님 픽이 되어야하니까 모든게 고고..

    [백준] 1463번: 1로 만들기(JAVA)

    https://www.acmicpc.net/problem/11726 | keyword: 동적 계획법, 반례에 휘둘리지 말기 ‼️이 문제의 정답 코드는 맨 마지막(Github Gist)에 있습니다. 중간중간의 코드들은 제 생각을 담은 일대기를 작성하였습니다. 백준 시리즈 글은 필자가 생각보다 많은 시간이 걸린 문제들의 생각을 정리해보고자 작성되었습니다. 문제의 링크는 여기를 이용해주세요! 첫번째 생각 이 문제를 딱 보고 음... 쉽겠군 하였다. 하지만 이 문제를 작성하게 된 이유이자, 시간이 많이 걸린 이유인 10의 사례를 보고 그 때부터 이 사례에 집착(?)하게 되었던 것 같다. 10은 10 -> 5 -> 4 -> 2 -> 1의 예시로 4번 들어오는데, 10 -> 9 -> 3 -> 1 의 경우로 3번 만..

    [백준] 1541번: 잃어버린 괄호 (JAVA)

    이 문제 포스팅을 작성한 이유 키워드: Integer Parse / 약간의 동적 계획법 ‼️이 문제의 정답 코드는 맨 마지막(Github Gist)에 있습니다. 중간중간의 코드들은 제 생각을 담은 일대기를 작성하였습니다. 첫번째 생각 맨 처음에 이 문제를 보고 든 생각은, 어떻게 빼는 수를 크게 할까? 였다. 괄호를 넣어서 '-' 부분을 극대화→식을 java 라이브러리로 계산하는 방법 을 생각하여 다음과 같이 코드를 작성하게 되었다. import java.util.*; import java.io.*; import javax.script.ScriptEngineManager; import javax.script.ScriptEngine; public class Main { public static void m..

    [기초] ROS 기본 개념 정리

    1. 헷갈리는 ROS 단어 정리 roscore: ROS 전체를 작동할 때 작성 코드, ROS와 노드, 서버를 실행시켜주는 도구이다. rosrun: ROS 내부 하나의 노드를 실행 roslaunch: 다수의 ros 노드를 일괄적으로 실행 launch 파일 xml 문법 구조 노드들의 실행 옵션을 설정: 노드들 간의 관계 정의(패키지 이름, 프로그램 이름, 노드 이름, console 출력, respawn 기능 여부 등) roscd: 해당 패키지의 디렉토리로 이동 $roscd [package name] rostopic: ROS msg 관리 $rostopic list //topic의 목록 $rostopic echo /[topic name] //topic의 데이터 $rostopic info /[topic name]..

    [DataStructures] 자료구조 정리

    이 글은 학교 수업(이상호 교수님의 '자료구조') 을 듣고 복습차 정리한 글입니다. 알고리즘의 성능 분석 시간복잡도 T(n): 알고리즘 수행에 필요한 연산의 개수 빅오 표기법: 함수의 상한 f(n) 2^n > n^2 > n > nlog2n > n > n^(½) > log2n>1 빅오메가표기법: 함수의 하한f(n) >= c*g(n) 빅세타표기법: 함수의 하한, 상한 동시에(평균 x) c1*g(n) 2^n void hanoi_tower(int n, char from, char aux, from to){ if(n==1) printf(“원판1을 %c에서 %c로 옮긴다”, from, to); else hanoi_tower(n-1, from, to, aux); printf(“원판 %d를 %c에서 %c로 옮긴다”, ..

    [웹개발] Nodejs-Firebase-Bootstrap을 이용한 프로젝트 CIYN 소개

    Nodejs-Firebase-Bootstrap을 이용한 프로젝트 CIYN 소개 본 프로젝트는 학교 수업 (오유란 교수님의 '오픈SW프로젝트')를 통해 필자가 참여한 프로젝트를 설명하는 글입니다. Github 코드는 여기에서 보실 수 있고, 데모는 여기에서 감상하실 수 있습니다. 1. 프로젝트를 어떻게 시작하게 되었는가? 대학교 시험 결과 자신의 위치 확인 힘들어 대학교 공부 중 시험을 보고, 자신의 점수 위치를 확인할 수 있는 시스템이 제대로 마련되어있지 않습니다. 현 존재하는 앱들을 참고하면 소위 말하는 "점수 줄 세우기" 문화가 이루어지는데요, 이는 정확하지 않을 뿐더러 신뢰하기 힘들다. 본 프로젝트를 통해 해당 학생들만이 점수를 입력하여 신뢰할만하며, 해당 데이터를 모아 이전학기, 이후학기 수강생들..

    [데이터베이스] 데이터베이스 정리

    본 글은 학교 수업(데이터베이스의 '이민수' 교수님)수업을 듣고 정리차 올렸습니다. 데이터베이스 수업 때 적은 SQL 연습지와 더불어 강의 정리본을 올립니다.

    [Mathematics] 수치해석 정리

    단원을 간단히 정리하고 밑에 폴더를 첨부하였습니다. 개구간법 고정점반복법 Newton-Raphson법 할선법 행렬 해 구하기 Gauss 소거법 Gauss-Jordan Pivotting LU 분해법 Gauss-Seidel +이완법 Cholesky 분해법 역행렬 구하기 LU 분해법 Gauss-Jordam norm, 조건수 비구속 최적화 황금분할탐색법 Netwon 보간다항법 Lagrange 보간다항식 방정식의 적분 합성사다리꼴 공식 Simpson 공식( 1/3, 3/8 등등) Netwon-Cates 폐구간 적분 Romberg 적분 Gauss-Legendre 적분법 회귀분석 수치미분 전진차분 후진차분 중심차분 Runge-Kutta Euler법 Heun법

    [소프트웨어] 소프트웨어공학 정리

    본 글은 학교 수업(박지현 교수님의 소프트웨어공학)을 듣고 복습차 정리한 글입니다. Software Engineering software: Computer programs and associated documentation attributes of good software: Maintainability (evolve to meet the changing needs of customers/changing needs of customers), Dependability and security(not cause physical or economic damage in the event of system failure), Efficiency(not make wasteful use of system resources..

    [데이터베이스] 빅데이터응용 정리

    본 글은 학교수업(이민수 교수님의 '빅데이터응용')을 듣고 복습차 정리한 글입니다. DataBase Essentials - Database Application Type Web(de-facto standard user interface): formatted as HTML + URL + HTTP - Why?: enable users to access database from anywhere - Dynamic generation of documents: tailor the display based on user information / up-to-date - Client Side Scripting: allow documents to be active(=permit flexible interaction) / ..

    [졸업프로젝트 개요, 1탄 RNN] 딥러닝을 이용한 자율주행카트

    딥러닝을 이용한 자율주행카트 구현하기 이 글은 작성자가 현재 진행중인 졸업프로젝트 "딥러닝을 이용한 자율주행카트" 만들기의 SW 알고리즘 중 RNN 부분의 중간 점검차 정리한 글입니다. 문제 정의 오프라인 매장의 매출 감소 오프라인 매장의 매출 감소에는 여러가지 이유가 있지만, 저희 팀은 그중 “오프라인 매장 사용은 힘이 들고 불편하다”는 문제점을 개선하고자 합니다. 저희 팀은 자율주행 카트 미미를 통해 오프라인 매장에서의 쇼핑 경험을 손쉬운, 편리한 경험이 되게 하고자합니다. 기술적인 면에서 한계점에 봉착한 현 자율주행카트 자율주행 스마트 카트를 오프라인 대형 마트에 도입하는데에는 비용적인 측면은 필수적으로 고려하기 마련입니다. 해당 대형마트에서만 사용 가능한 모델으로 맞춤제작되어 제작되므로, 카트의 ..

    [졸업프로젝트 2탄, CNN] ResNet50 톺아보기: 구조와 코드 분석

    ResNet 톺아보기: 구조와 코드 분석 본 글은, 2014년에 나왔음에도 불구하고 현재까지도 대표적인 CNN 구조인 ResNet에 대해 작성한 글입니다. ResNet은 2014년 GoogLeNet과 함께 주목을 받았지만, GoogLeNet과 다르게 ResNet은 간단한 구조를 가지고, 참신한 아이디어 덕분에 현재까지도 많은 network에서 사용되고 있습니다. ResNet50에 대해 설명하고, 직접 코드를 작성하며, 이를 통해 직접 구현한 예시를 보겠습니다. (해당 코드는 pytorch 기반으로 작성되었으며, Gist(코드 부분) 역시 직접 작성되었습니다.) 졸업프로젝트 Yolo 모델에 기본적으로 사용되는 CNN 모델인 ResNet을 바탕으로 작성되었습니다. 본 팀은 이 기본 CNN 구조를 바탕으로 Y..

    [졸업프로젝트 3탄, HW] turtlebot3로 SLAM, Navigation 구현 (2020 Summer)

    해당 프로젝트는 졸업프로젝트에 적용차 시연되었습니다.(졸업 프로젝트의 HW 구현 반영) 해당 프로젝트 Notion:bit.ly/35rdfmb 졸업 프로젝트 대비, SLAM, Navigation 기술 구현을 끝내며, 전체적인 프로젝트의 진행상황을 공유해보려고 한다. LiDAR 센서의 SLAM, Navigation 기술이란? SLAM(Simultaneous localization and mapping): 임의 공간에서 이동하면서 주변을 탐색할 수 있는 로봇에 대해, 그 공간의 지도 및 현재 위치를 추정하는 문제입니다. 즉, LiDAR 센싱을 통해 자신이 있는 공간에 대해 하나의 지도를 만들 수 있습니다. Navigation: 모터와 여러가지 부품을 이용해서 한곳에서 다른 곳으로 이동하는 기술이다. 주로 방향..

    [Database] 전체 기본 개념 정리

    이 글은 학교 수업(이민수 교수님의 'Database')를 듣고 복습차 정리한 글입니다. 기본 단어 Schema: logical structure of the Database Instance: the actual content of the databases Language Data Manipulation Language: Language for accessing and manipulating the data (Known as Query language(includes SQL)) Data Definition Language: Language for defining the database schema (DDL compiler generates a set of table templates sto..

    [운영체제] 중간/기말고사 틀린 문제 정리

    **공부하다 만든 첨부 파일들 첨부합니다** 결론: 문제 잘못 분석/꼼꼼함 부족 2 실수2 어려움4 3. 20 bit address를 사용하고 1KB 크기의 page를 사용하는 paging system에서 물리적 메모리 중 page frame 할당을 위한 공간이 4MB라고 하자.1단계 page table을 사용할 경우 프로세스 당 몇 개의 page table entry가 필요한가? 답: 4096 > 정답 : 1024 ( 2^20/2^10) 피드백) 유형 정리를 잘못한 것 같다. 11. 다음 중 first fit, best fit, worst fit 등의 dynamic storage allocation 문제가 발생하는 메모리 관리 기법을 모두 고르시오. 하나 이상을 선택하세요. a. 고정분할방식 b. 2단..

    [운영체제] 전체 기본 개념 정리

    이 글은 필자가 학교 수업(반효경 교수님의 '운영체제')을 듣고 수업 복습차 전체 정리한 글입니다. 추가하여, 박상수 교수님의 '임베디드 시스템' 과 연계되어 코드를 추가를 몇개 추가합니다. Chapter 1. Introduction to Operating Systems 1. 운영체제(Operating System, OS)란? - 커널: 운영체제의 핵심 부분으로 메모리에 상주하는 부분 - 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 2. 분류 - 동시작업가능여부: single tasking / Multi-tasking - 사용자의 수: single user / multi user - 처리 방식: batch processing(일괄 처리, 일정량..

    [JAVA] 네트워크를 통한 실시간 그림판/채팅방 구현

    이 프로젝트는 필자가 2019년 2학기 수업에 들은 "JAVA 프로그래밍 및 실습"(담당교수: 박현석 교수님) 시간에 작성한 기말 프로젝트입니다. 코드를 함부로 이용하시면 저작권에 위배되오니 참고용으로만 이용해주세요!:) 총 2가지를 구현하고자 하여 각각 구현하게 되었습니다. 밑에 그림 참고해주세요!(코드에 주석처리로 설명을 다 써놓은 상태입니다.) 코드는 여기(Github) 를 눌러서 확인해주세요! Project A: 실시간 채팅이 가능한 그림판 간단 툴 정리 1. JTabbedPane 활용을 통한 그림판에 필요한 도구들 상단에 모아놓기 + ColorIcon, GridBagLayout 활용 2. JColorChooser을 통한 색깔 선택, JFileChooser를 통한 파일 열기/저장 구현방법 | Pr..

    What is this blog?

    About the blog "Constructing Future" Constructing Future는 여러가지 기록들이 적혀져있는 기술 블로그입니다. 예전에 개인 웹사이트를 만들거나 깃허브를 운영하는 등 다양한 시도를 하였지만, 관리를 하나하나 하기에 굉장한 불편함이 있었고, 시간을 많이 잡아먹는 것 같아 이렇게 따로 티스토리 블로그를 운영하게 되었습니다. 이 기술 블로그는 컴퓨터공학과에 재학중인 저의 행사 참여 후의 정리차 작성하는 후기들이나 공부하는 토픽과 관련된 자잘한 정리들을 모아놓은 블로그입니다. 이러한 후기들, 정리글들이 여러분들에게 의미가 있고 도움이 되시길 기원합니다. 연락 블로그에 관련된 수정 내용이나 궁금한 내용, 개선 방안들을 댓글로 달아주시면 따뜻하게 답변해드립니다. 위쪽 상단의 ..

    공대 대학원 진학 팁들

    이 글은 학교 내 클라우드 데이(2019년 11월 23일)을 참가하고 석사, 박사과정에 있는 선배님들의 말씀을 정리한 글입니다. 지원시 팁들 지원시 GRE. TOFEL / SOP / LOR 이 필요하다. 1. GRE. TOFEL 지원하려는 학교가 GRE 점수를 보는지, TOFEL 점수를 보는지, 둘 다 보는지 확인하라. (MIT 대학원은 TOFEL만을 확인하는 경우가 있다.) 2. SOP(학업계획서) 제일 중요하다!! 지원시 학부생 논문이 있으면 유리하다 학점은 (미국 기준) 4.0 만점에 3.8~3.9(4.3 만점 4.1~4.2) 가 많다. 3. LOR(추천서) 대부분 2-3장 준비한다. (주의) 추천서 작성시 3장이 다 다른 말투를 가져야 한다. 내가 직접 교수님께 드려서 그대로 제출하는 경우가 많으..

    [Algorithms] Sorting정렬 한꺼번에 살펴보기

    이 글은 필자가 학교 강의(이상호 교수님의 "자료구조")를 듣고 복습차 정리한 글입니다. 참고해주세요! 정렬: 물건을 크기 순으로 오름차순/내림차순으로 나열하는 것 ※ 정렬 알고리즘을 통해 파악해야 할 사실은 알고리즘의 특성도 중요하지만 각 알고리즘의 진행 방식에 따른 복잡도, 어떤 상황에서 사용하면 가장 효과적인지를 면밀하게 생각해보는 것이 가장 중요하다고 판단됩니다. 정렬 알고리즘은 6가지 이상이 있지만, 대표적인 6가지로 추려서 보면, 단순하지만 비효율적인 방법(삽입 정렬, 선택 정렬, 버블 정렬)과 복잡하지만 효율적인 방법(퀵정렬, 힙 정렬, 병합 정렬)로 나뉩니다. (배열을 이용한 정렬 구현으로)하나씩 살펴보도록 하겠습니다. 삽입 정렬Insertion Sort 코드확인 앞부터 정렬을 순서대로 하..

    2019 Fall) Samsung AI Forum삼성 AI포럼을 갔다오고...

    이 글은 필자가 2019년 11월 4일-5일, 이틀에 걸쳐 열린 제 3회 Samsung AI Forum에 참석하고 정리한 글입니다. 포럼에 대해서 궁금하시다면 여기를 눌러서 해당 사이트에 들어가보세요! Samsung Research삼성 리서치에게서 메일이 와서 받게 된 포럼 초대장으로 포럼에 참가하게 되었다. 사실 이런 포럼 행사가 내 미래를 일구는 주 내용이 될 수 있다는 생각에 이런 행사들은 무조건! 참석하게 된다. 학교 수업이 있는 관계로 두 개의 Keynote들을 듣게 되었고, 내용들도 매우 신박하였다. 그 전에 삼성 R&D 캠퍼스를 처음 갔는데 생각보다 되게 깔끔하고, 안전요원도 대기하고 있어서 대기업은 다르구나 하는 생각을 또다시 가지게 되었다. 총 두 교수님, Noah Smith(Univer..

    [컴퓨터구조] LINUX리눅스 명령어 정리

    이 글은 필자가 학교 수업(반효경 교수님의 '시스템 SW 및 실습')을 듣고 정리한 글(중간고사 전까지의 범위)입니다. 1. 명령어 정리 (ctrl+F로 검색하여 찾아볼 수 있다./ []안에 들어가 있는 부분은 조건을 다는 부분으로 원하는 조건이 있으면 추가하는 방식으로 진행된다.) -파일 관리 부분(파일/디렉토리 생성, 저장, 삭제, 복사, 이동,수정, 압축 등등) 명령어 명령어 이용 예시 cd 다른 디렉토리 이동(밑 파일 경로 내용 확인) $ cd /home/test/temp pwd 작업 디렉토리 확인 $ pwd ls [-adIR] [FILE|Directory] 디렉토리 내용 보기 -a: 숨겨진 파일 나열 -d는 디렉토리 자체의 정보 -l 허가정보, 소유권 등 긴 목록 제공 -R 해당 파일, 폴더의 ..

    [컴퓨터구조] ARM 명령어 정리

    이 글은 필자가 직접 학교 수업(조동섭 교수님의 '컴퓨터 구조')을 듣고 정리한 글입니다. ARM 명령어는 총 3가지로 분류하여 설명된다. 이는 모두 어셈블리 언어를 통하여 작성되므로, 명령어를 숙지하는 것은 필수적이다. 검색하기 위해서라면 Ctrl+F를 눌러서 바로 접속하도록 하는 것을 추천한다. - Data Transfer Instruction: 데이터를 로딩하고, 저장하는 과정에서 쓰이는 명령어를 뜻한다. - Data Processing Instruction: 데이터의 값을 계산하고, 논리적인 계산이나, 값 복사, 비교, 비트 옮기기와 관련된 모든 명령어를 일컫는다. - Control Flow Instruction: Branch와 같은 조건문을 처리할 때 어떤 명령어를 이용하여 접근하는지 알려준다...

    2019 Fall) Intel Korea인텔코리아 면접 후기

    이 글은 필자가 직접 인텔코리아 면접을 거쳐 인텔 코리아에게서 인턴 합격을 받았으나 필자의 오랜 판단 끝에 끝내 인턴을 거절한 일대기를 작성하였습니다. 0. 인턴 내용 인턴은 인공지능 관련된 업무를 하는 거였는데요, 자세히 말씀드리면 주로 인공지는 딥러닝 샘플코드를 작성해서 학생들에게 강의를 할수 있는 실습 교재을 만드는것 입니다. NUC라는 인텔 PC를 써서 추론도 하고, 모델 트레이닝 등의 전체적인 코드 및 교재를 만드는 일이었습니다. 1년 단위 인턴일인 만큼 나중에는 Tensorflow에서 object detection과 딥러닝 음성 인식을 이용한 응용프로그램까지 만드는 것이 주 업무라고 하였습니다. 인텔 접수 당시에는 Big Data Analysis & Optimization Engineer 이런..

    [백준] 1100번: 하얀 칸

    1100번 문제[링크] 문제에서 집중해야 할 내용/이 문제를 당락짓는 요인 1. 하얀 칸과 검은 칸을 어떻게 구분 지을 수 있는가? 2. 많은 char형 변수들을 어떻게 받을 수 있는가? 문제의 해결책 1. 행렬로 생각하여 행이 홀수일 때 열이 짝수 / 행이 짝수일 때 열이 홀수인 경우에 하얀칸에 해당된다. 2. char형은 gets함수를 이용하여 입력받을 수 있다. 단, 언어 설정시 C로 설정해주어야 한다.(C++에 존재하지 못한다.)

    2019 Fall) 2019 네이버 인공지능 해커톤Naver AI Hackerton(AI Speech) 예선전 후기

    이 글은 필자가 직접 네이버 인공지능 해커톤에 참여한 후에 남긴 후기입니다. 2019 네이버 인공지능 해커톤 대회 링크는 여기를 눌러주세요. 대회 관련 깃허브는 여기서 보실 수 있습니다. 0. 대회 취지 대회 내용은 Speech-to-Text(STT) 방식으로, 네이버에서 제공하는 train 데이터(5G정도의 방대한 한국어 음성 데이터셋)를 이용하여 얼마나 정확한 Text 결과를 출력하는지를 중점적으로 하여 대회가 진행되었습니다. 자세한 건 위에 나와있는 깃허브 링크를 이용하면 자세하게 보실 수 있습니다. 1. 해커톤 진행 방식 해커톤 진행은 네이버 측에서 제공한 사이트에 접속하여 Github아이디로 들어가서 해당 팀에 작업을 하는 방식으로 이루어졌습니다. 데이터 셋을 제공해주셨고, GPU를 이용해서 접..

    [백준] 10773번: 제로

    백준 10773번: 제로(문제링크) **사실 이 문제를 넣은 이유는 오늘이 포인터를 이용하여 문제를 푼 첫 날이기에 기록하고자 글을 만들게 되었다. ** 문제에서 파악해야 할 핵심요소 및 마인드맵 100,000개의 정수를 어떻게 받아낼 수 있는가? 처음에는 배열을 생각하였지만, 배열은 많은 수를 감당할 수 있는 능력이 되지 않는다. 다른 방법을 찾게 되었다. 쓴수 지우고 넣고 하는 형식은 무엇이 있을까? 주의사항 100,000개의 정수를 감당할 수 있는 메모리가 할당된 배열을 이용한다. int* list = (int*) malloc(sizeof(int)*num); 최근에 쓴 수에 대한 지우고 넣고 하는 방식은 stack스택을 이용하면 가능하다. 준비물: 데이터를 담을 배열(메모리가 할당된), 넣은 위치를..

    [DataStructures] 정적/동적 메모리 할당 간단 개념

    이 글은 학교 강의(이상호 교수님의 '자료구조')를 듣고 공부 목적차원에서 정리한 글입니다. 메모리 할당은 프로그램 자체가 컴퓨터에서 메모리를 할당 받는 것이기에 선언을 하지 않으면 메로리가 할당되지 않아 에러가 뜨는 경우가 발생하여 필수적인 방법입니다. 메모리를 할당받는 방법은 두가지가 있습니다. 1. 정적 메모리 할당 2. 동적 메모리 할당 1. 정적 메모리 할당 이는 메모리의 크기가 프로그램이 시작하기 전에 결정되는 것으로 프로그램의수행 도중에 크기가 변경될 수 없습니다. 가장 대표적인 예시는 변수나 배열의 선언을 들 수 있습니다. 먼저 선언을 하기에 뒤에서 malloc와 같은 함수를 불러서 할당할 필요가 없습니다. ex. int buffer[100]; 아니면 char name[] = "data s..

    [DataStructures] Stack스택

    이 글은 학교 강의(이상호 교수님의 '자료구조')를 듣고 복습과 정리차 작성한 글입니다. 스택(stack ADT스택 추상자료형)이란? 후입선출(LIFO: Last-In-First-Out) - 가장 최근에 들어온 데이터가 가장 먼저 제거되는 형태 나는 '책이 쌓여진 형태'를 바탕으로 암기하였을 때 받아들이기 쉬웠다. 이걸 굳이 왜 쓰는가? 교수님의 말에 따르면, 가장 최근에 들어온 데이터는 가장 따끈따끈한 정보를 가지는 데이터로 많이 쓰이기에 스택의 형태를 가지는 경우가 필요하다고 하셨다. 이러한 용도 외에도 스택의 형태 덕분에 괄호검사, 수식 계산, 미로 탐색할 때 알고리즘으로도 자주 사용된다. 스택에 쓰이는 함수 create(s) ::= 스택 s를 생성한다. is_empty(s) ::= 스택 s가 비어..