Programming310 원형 큐 Circular Queue 지난 포스트에서 배열을 이용해 큐를 이동하던 중에 원소 이동의 문제로 인해 구현이 실패했었습니다. 그래서 이번엔 순차 자료구조로 그 문제를 해결할 수 있는 방법인 원형 큐를 소개하려고합니다. 1. 원형 큐 지난번에 원소 삭제에서 삭제하고 배열 내부의 원소를 하나씩 앞으로 이동하면 큐가 구현되지만 원소 이동이라는 작업이 오버헤드를 일으켜 구현도 사용도 어렵다고 했었습니다. 그래서 나온개념이 배열 내부의 원소가 아닌 front와 rear를 움직이자! 해서 등장한 자료구조가 원형 큐입니다. 이처럼 기존의 리스트같은 구조를 다음과 같이 동그랗게 말은 구조입니다. (실제로 물리적으로는 동그랗지 않습니다) 자세한 것은 구현하면서 살펴보도록 하겠습니다. 2. 원형 큐 구현 2-1. 큐 생성 큐 생성입니다. 그동안 했.. 2021. 9. 17. 큐 Queue 이번에는 스택과 비슷한 자료구조인 큐를 알아보겠습니다. 1. 큐 큐는 스택처럼 특정한 위치에서 넣고 뺄 수 있는 자료구조입니다. 스택은 입구와 출구가 같아서 나중에 들어간 자료가 먼저 나오는 후입선출 구조였다면, 큐는 입구와 출구가 따로 있어서 먼저들어간 자료가 먼저 나오는 선입선출(FIFO, First Input First Out) 자료구조 입니다. 보통 어딘가 입장할 때 우리는 줄을 섭니다. 그래서 먼저 줄을 선 사람이 먼저 입장하게됩니다. 이 줄이 큐입니다. 혹시 리그 오브 레전드 라는 게임 혹은 다른 게임에서 우리는 게임을 잡기 위해 대기 큐를 잡는다~라고 하죠? 그 큐도 이 큐입니다. 먼저 게임을 잡으려고 한사람부터 게임에 넣어주는 구조이죠. 이제 큐가 무엇인지는 감이 잡히시나요? 그림으로 설명.. 2021. 9. 16. 커맨드 패턴 Command Pattern 이번에 소개할 패턴인 커맨드 패턴은 특정 기능을 캡슐화 시키는 패턴입니다. 1. 커맨드 패턴 소개 커맨드 패턴은 서론에서 이야기 했듯이 특정 기능들을 캡슐화 시키는 패턴입니다. 그래서 보통 매개변수를 이용해서 기능에 다른 요구 사항들을 넣을 수 있게됩니다. 예를 들어 전원을 켜는 기능이 있다고 할 때, 매개변수로 티비냐 컴퓨터냐에 따라 같은 전원을 켜는 기능이라 하더라도 티비를 키거나 컴퓨터를 키는 등의 동작이 가능해집니다. 커맨드 패턴에서는 크게 Invoker(이하 인보커, 호출자), Receiver(이하 리시버, 수신자), Command(이하 커맨드, 명령) 객체로 구분됩니다. 인보커는 기능의 실행을 요청하고 리시버는 명령을 수행하는 객체입니다. 2. 커맨드 패턴 구현 2-1. 커맨드 객체 구현 커맨.. 2021. 9. 15. [Git/Github] 원격 저장소의 파일을 지우기 이번에는 git bash 혹은 터미널 상에서 원격 저장소에 올린 파일을 지우는 방법에 대해서 알아보도록 하겠습니다. 1. .gitignore .gitignore 파일에 디렉토리나 파일을 추가함으로써 원격 저장소에 올라가는 파일을 지정할 수 있다고 했었습니다. 자세한 내용과 작성법은 아래 링크 글을 참조해주세요. https://bamtory29.tistory.com/entry/Git-gitignore?category=988312 [Git] .gitignore 스테이징하고, 커밋하는 방법을 알아봤습니다. 이렇게 깃을 앞으로 활용하다보면 원격저장소에 올리기도 하고 버전 관리가 필요하지 않은 파일들이 생기기도 합니다. 따라서 이들을 관리해주 bamtory29.tistory.com 2. 원격 저장소에 올린 파일 .. 2021. 9. 14. 스택 Stack 이번에 소개할 자료구조는 스택과 큐인데 스택 따로 큐 따로 2개에 나눠서 소개하겠습니다. 그리고 그중에서 스택 부터 보도록 하겠습니다. 1. 스택 소개 스택(Stack)은 데이터를 쌓아올린듯한 자료구조입니다. 마트에 가면 '프루팁스'라고 제가 좋아하는 젤리를 팝니다. 이렇게 생긴 원통형 젤리인데요. 한쪽은 젤리를 꺼낼 수 있는 뚜껑이 있고 반대쪽은 막혀있습니다. 그래서 한쪽으로만 젤리를 넣고 꺼낼 수 있죠. 스택이 마치 이 젤리와 같은 모양의 자료 구조입니다. 스택은 원통형(물론 물리적으로 원통은 아니고 생긴게 그렇다~라는 말입니다.) 자료구조입니다. 데이터를 한쪽으로만 꺼내고 넣을수가 있습니다. 그래서 구조적으로 먼저 들어간 자료가 나중에 나오는데, 이를 후입선출, LIFO(Last In First O.. 2021. 9. 14. 싱글턴 패턴 Singleton Pattern 이번에 소개드릴 패턴은 싱글턴 패턴입니다. 1. 싱글턴 패턴 싱글턴 패턴은 이름에서 single;하나의 라는 의미가 들어가 있듯이 하나의 인스턴스 생성을 위한 패턴입니다. 즉, 단 한번의 객체 생성을 보장하는 패턴입니다. 처음들을때는 객체 생성을 단 한번만 한다니까 의미없고 이상해보입니다. 하지만 생각해보면 의외로 단 하나의 객체 생성만을 보장해야 하는 경우가 꽤 있습니다. 대표적으로 설정을 저장하는 객체가 있습니다. 설정은 사용자가 단 하나의 설정을 이용하죠. 만약에 설정이 여러개라면 설정끼리 충돌하는 상황이 발생하기 때문에 이런 설정 객체 같은 경우 단 하나의 인스턴스 생성을 보장해야합니다. 2. 싱글턴 패턴 구현 싱글턴 패턴은 여태까지의 패턴과는 다르게 구현 전에 잠시 생각해 봐야할 것들이 있습니다.. 2021. 9. 13. 이전 1 ··· 24 25 26 27 28 29 30 ··· 52 다음 300x250