반응형

언어 자료구조 알고리즘 1251

[구글 Go 하자] 4. 깃허브 가입하고 LiteIDE 다운로드 및 테스트하기

4. 깃허브 가입하고 LiteIDE 다운로드 및 테스트하기 안녕하세요. 언제나 휴일, 언휴예요. 이번에는 윈도우즈에서 Go 언어로 개발하기 위한 통합 개발 환경을 구축합시다. 여기에서는 간단한 LiteIDE를 사용할 거예요. 깃허브에서 LiteIDE를 다운로드 받아서 사용합시다. 만약 가입한 적이 없으면 먼저 가입해야 합니다. 웹 사이트 상단에 Sign up 버튼을 클릭하세요.[그림 1] Sign up 버튼 클릭입력 포멧에 맞게 별칭과 이메일 계정, 패스워드 등을 입력하고 Register 버튼을 클릭하세요.[그림 2] GitHub 가입 신청 그리고 자신이 등록한 이메일을 확인하면 Confirmation instructions 제목의 이메일이 온 것을 확인할 수 있고 하나의 링크가 있을 거예요. 이것을 클..

[구글 Go 하자] 3. 윈도우즈에 Go SDK 설치 및 환경 설정하기

3. 윈도우즈에 Go SDK 설치 및 환경 설정하기 안녕하세요. 언제나 휴일, 언휴예요. 앞에서는 Go 프로그래밍 언어가 무엇인지 간략하게 알아보고 Golang 사이트에서 기본적인 코드를 알아보고 Try 해 보았어요. 이번에는 윈도우즈에서 Go 프로그래밍 언어의 SDK 설치 및 환경 설정하기를 할 거예요. 먼저 Golang 사이트의 다운로드 페이지(https://golang.org/dl/)로 이동합니다. 그리고 Featured downloads 항목에서 Microsoft Windows 에서 다운로드를 받습니다.[그림 1] Go SDK 다운로드 다운로드를 완료하였으며 실행하세요. 설치 과정은 라이센스 확인과 설치 폴더 선택 등이 있을 뿐 별다른 특이 사항은 없습니다.[그림 2] Go SDK 설치 화면 이와..

[구글 Go 하자] 2. Golang 사이트에서 "Hello, World" Try Go하기

2. Golang 사이트에서 "Hello, World" Try Go하기 안녕하세요. 언제나 휴일, 언휴예요. 이전 게시글에서 Go 프로그래밍 언어를 간략하게 소개했어요. 구글 Go 언어의 컴파일러는 공식 웹사이트(http://golang.org)에서 다운로드 받아 설치할 수 있어요. 그리고 구글 Go 언어 공식 웹 사이트에서 간단하게 편집하고 테스트할 수도 있어요. 앞으로 여기에서는 Golang 사이트라고 부를게요. Golang 사이트의 첫 화면에서는 간단하게 Go로 소스 코드를 편집하고 실행할 수 있는 영역이 제일 먼저 보입니다. TryGo 레이블 아래에 편집 창에는 이미 "Hello, 世界"를 출력할 수 있는 코드를 작성한 상태입니다. 여러분은 이 곳에 원하는 Go 소스 코드를 편집할 수 있습니다. ..

[구글 Go 하자] 1. 구글 Go 프로그래밍 언어 소개

1. 구글 Go 프로그래밍 언어 소개 안녕하세요. 언제나 휴일, 언휴예요. 구글 Go 하자의 첫 번째 글, 구글 Go 프로그래밍 언어 소개입니다. 2007년 9월 C언어의 모체인 B언어를 개발에 주도적으로 참가한 켐 톰슨과 로버트 그리즈머, 롭 파이크에 의해 분산 운영체제에 관한 작업을 하면서 Go는 태동할 준비를 합니다. 2008년 1월 살아있는 전설 켐 톰슨은 C코드를 만들어내는 컴파일러를 만들기 시작한 것에서 이안 테일러와 러스 콕스가 참여하면서 실질적인 Go의 모습은 갖추어졌어요. 그리고 2009년 11월 10일 공식적으로 런팅을 하였습니다. 대체적으로 C언어와 비슷한 문법을 갖고 있는 Go언어는 가비지 컬렉션을 도입하여 C언어와 C++ 언어에서의 동적 할당한 메모리의 소멸의 책임에 고민을 덜 수..

[디딤돌 자료구조와 알고리즘] 5.4.1 스택 설계, 5.4.2 스택 구현, 5.4.3 스택 테스트

5.4.1 스택 설계, 5.4.2 스택 구현, 5.4.3 스택 테스트 5.4.1 스택 설계 스택도 연결리스트를 래핑하여 만들게요. 연결리스트 형식을 스택 형식으로 타입 재지정합니다.#include "LinkedList.h"typedef LinkedList EHStack; 동적으로 스택을 생성하는 함수와 소멸하는 함수를 제공합시다.EHStack *New_EHStack();void Delete_EHStack(EHStack *ehs); 스택에 자료를 보관하는 함수와 꺼내는 함수를 제공합시다.void EHStack_Push(EHStack *ehs, Element data);Element EHStack_Pop(EHStack *ehs); 스택이 빈 상태인지 확인하는 함수도 제공합시다. int EHStack_IsEm..

[디딤돌 자료구조와 알고리즘] 5.4 스택 (STACK)

5.4 스택(STACK) 스택은 큐와 달리 가장 최근에 보관한 자료를 먼저 꺼내는 후입선출(LIFO, Last In First Out)형태로 동작하는 자료구조입니다. 스택은 배열이나 연결리스트로 구현할 수 있어요.여기에서는 배열로 구현하는 것을 먼저 해 본 후에 미리 만든 연결리스트를 래핑하는 방법을 살펴보아요. 먼저 스택 구조체를 정의하세요.스택에는 저장소와 가장 최근에 보관한 위치를 멤버로 갖고 있어야 해요. #define STACK_SIZE 10typedef struct Stack //Stack 구조체 정의{ int buf[STACK_SIZE];//저장소 int top; //가장 최근에 보관한 인덱스}Stack; 스택에는 보관하는 동작을 Push라 부르고 꺼내는 동작을 Pop이라 불러요.void P..

[디딤돌 자료구조와 알고리즘] 5.3.2 큐 구현 , 5.3.3 큐 테스트

5.3.2 큐 구현, 5.3.3 큐 테스트 5.3.2 큐 구현 먼저 동적으로 큐를 생성하는 함수를 작성합시다.EHQueue *New_EHQueue(){ 여기서 설계한 큐는 연결 리스트이므로 연결리스트를 동적으로 생성하여 반환합니다. 이처럼 이미 작성한 기능을 이용하여 전달하는 역할만 하는 함수를 래퍼(Wrapper) 함수라고 부릅니다. return New_LinkedList();} 동적으로 생성한 큐를 소멸하는 함수도 래퍼 함수로 작성합니다.void Delete_EHQueue(EHQueue *ehq){ Delete_LinkedList(ehq);} 큐에 자료를 보관하는 함수도 연결리스트에 순차 보관하는 함수를 호출하는 래퍼 함수로 작성합니다.void EHQueue_Put(EHQueue *ehq, Eleme..

[디딤돌 자료구조와 알고리즘] 5.3.1 큐(QUEUE) 설계

5.3.1 큐(QUEUE) 설계 여기에서는 연결리스트를 큐로 감싸(Wrapping)하여 선입선출(FIFO, First In First Out)방식으로 자료를 보관 및 꺼내기 동작을 제공하도록 설계할게요.#include "LinkedList.h"typedef LinkedList EHQueue; 큐를 설계할 때 내부에 자료를 보관하는 저장소를 배열로 만드는 방법도 있는데 이미 만들어진 연결리스트를 이용하여 자료를 보관하게 정의하면 저장소의 한계가 없는 큐를 만들 수 있습니다. 물론 메모리의 한계까지 없는 것은 아닙니다. 일반적으로 대학에서 배우는 큐는 자료를 보관하는 저장소를 정적 크기의 배열로 정의하는 큐를 배우고 꽉 찼을 때의 처리에 관한 고민을 합니다. 특히 이 문제를 원형 큐 형태로 만들어 문제를 해..

[디딤돌 자료구조와 알고리즘] 5.3 큐(QUEUE)

5.3 큐(QUEUE) 이번에는 큐를 알아보기로 해요.큐는 순차적으로 자료를 보관하고 가장 최근에 보관한 자료를 꺼내는(FIFO, First In First Out) 버퍼예요. 여기에서는 버퍼의 크기가 정적인 배열로 정의하는 것을 먼저 구현할 거예요.그리고 난 후에 이미 작성한 연결리스트를 이용하는 큐를 만들기로 해요. 배열로 큐를 정의할 때 자료를 보관하는 버퍼 외에 자료를 보관할 위치와 꺼낼 인덱스를 기억하고 있어요.보관할 위치는 맨 뒤에 보관해서 rear라고 부르고 꺼낼 위치는 맨 앞이어서 front라 불러요.그리고 큐에 자료를 보관하는 행위를 EnQueue 혹은 Put이라 불러요.큐에서 자료를 꺼내는 행위는 DeDueue 혹은 Get이라 불러요.그리고 배열로 큐를 구현할 때는 큐가 비었는지 혹은 ..

[python] 11. 리스트에 자료를 추가하기

[python] 11. 리스트에 자료를 추가하기 안녕하세요. 언제나 휴일, 언휴예요. 이전 게시글에서 리스트와 TUPLE의 차이점을 간략하게 알아보았어요.[python] 10. 파이썬을 잘 사용하기 위한 첫 걸음, 리스트를 소개합니다. 이번에는 리스트에 요소를 추가하는 방법들을 알아보기로 해요. 파이썬의 리스트는 자료를 순차적으로 보관할 때 사용하는 append 함수를 제공하고 있어요. 그리고 특정 인덱스에 보관할 때 사용하는 insert 함수를 제공합니다. 이 외에 extend 함수를 사용하여 리스트에 다른 리스트의 요소들을 추가하는 것을 할 수 있어요. append 함수를 이용하여 순차 보관Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:16:59) [MSC..

반응형