![[C++] 큐 직접 구현해보기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbiC7GX%2Fbtr9Nh6YIwM%2FAAAAAAAAAAAAAAAAAAAAAMKXApmbiSRP3yxrEgFNyE0l0FyXLOi4Po2F6K9QECmj%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3D%252BRLj1c1jPsDfMXzKvTO836yBc%252BU%253D)
큐(Queue)란? 큐도 스택과 마찬가지로 데이터를 일시적으로 쌓아 놓은 자료구조이다. 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 선입선출(FIFO : First In First Out)의 구조를 가지고 있다. 많은 예시로 은행의 대기열을 예시로 든다. 나같은 경우는 큐를 알림시스템에 사용해서 들어온 순서대로 알림이 출력되게 하거나, 들어온 순서대로 오브젝트를 재사용하는 오브젝트 풀링을 구현할때 사용했던 자료구조다. [Queue.h - 선언] #pragma once class Queue { private: int myQueue[1000] = { 0, }; int num = 0; //큐에 담긴 값의 갯수 int* firstNum = nullptr; // 첫번째 값의 포인터 public: Queue(); v..

주말에는 하루를 써서 스위프트를 배우고 있다. 너무 이것저것 손대는거같아서 걱정되긴하는데.. 일단 배우고 있으니까 정리를 해본다. Xcode 의 PlayGround Xcode의 메뉴에서 File - New를 눌러보면 이것저것 많이 나오는데, PlayGround라는 것이 있다. 검색해보면 스위프트 언어를 공부하기위한 개발 환경이라고 하는데.. 정말 학습용? 실험용? 인것같다. 오른쪽창에서 결과를 시각적으로 바로바로 확인 가능하다. CGRect라는 구조체를 사용하니 옆에 설정한 값을 눈으로 볼 수 있게 UI가 바로바로 나온다. 학원에서나 집에서나 PlayGround로 학습했다. 스위프트의 변수와 상수 //변수 var name = "스위프트" //상수 let name = "스위프트" 변수는 var , 상수는 ..
![[C++] 스택 직접 구현해보기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbgTin7%2Fbtr9A38hO1C%2FAAAAAAAAAAAAAAAAAAAAALIGlVgeBAtU42IsETrMQda3ipsIGhknvylPvxMqndfW%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3D%252FnPbN9rJk76V51jvjnQZEpnisno%253D)
스택(stack)은 후입선출(LIFO, Last In First Out)의 구조를 가지고있다. 스택사용의 예라고 한다면 우리가 인터넷 브라우저를 사용할때 쓰는 뒤로가기가 있다. C++의 STL, C#의 Collection에서 기본으로 구현되어있는 스택만 쓰다가 자료구조들을 한번 다시 점검&공부하는 느낌으로 스택을 직접 정말 간단하게 구현해봤다. [ MyStack.h - 선언 ] #pragma once class MyStack { private: int pointer = 0; int stack[1000] = { 0, }; public: int Count(); bool IsEmpty(); void Push(int value); int Pop(); void Clear(); }; [MyStack.cpp - 정의..

델리게이트 델리게이트는 명사로는 대표(자), 동사로는 위임하다.. 라는 뜻을 가지고 있다. 함수나 메서드의 기능을 변수에 담아놓고 어디서 호출하더라도 그 기능을 대신 실행시켜 준다. 처음 배울때 어려운 개념중에 하나고, 완벽하게 쓰려면 한참은 더 공부해야 할 것 같다. 예시 - 우리는 성인 영화를 보여주는 스트리밍 사이트를 만들었습니다. - 시청자의 나이를 받아서 성인이면 영화를 보여주고, 아니면 재생을 시키면 안됩니다. public static void ShowAudltMovie(int age) { if(age >= 20) { Console.WriteLine("영화 재생"); } else { Console.WriteLine("영화 재생 불가"); } } 간단하게 성인인지를 판별하여 영화를 보여주는 코드..

https://youtu.be/VNhzMEsy7xc 최근 회사에서 출시한 게임의 영어/일본어 버전 작업을 진행했던터라, 3일전에 유니티채널에 올라온 이 영상을 보니 관심이 갔다. 회사에서나 개인적으로나 만든 어떠한 게임이라도 최소한 영어버전 정도는 만들어서 출시를 해야될거같다는 생각이라서 한번 직접 해봤다. 이 영상에 대한 내용을 정리한 글이니 위의 영상만 보셔도 상관 없을것같다. 준비 하기 일단 패키지매니저에서 Localization을 받아 주어야한다. 기본적으로 포함되어있는 패키지는 아니다. 간단한 UI들을 만들어주었다. 버튼을 누르면 해당 언어로 변환과 동시에 국기도 그에 맞게 세팅된다. 테이블 만들기 우리가 xml,csv파일로 테이블을 만들어 데이터들을 관리하듯이 데이터 테이블이 필요하다. 위의 ..

게임을 만들다보면 생각해야할 부분이 상당히 많은데, UI와 화면구성, 화면비같은 시각적인 부분도 상당히 중요한 요소들이다. 요즘 스마트폰들의 화면비를 보면 다들 화려한 개성들을 뽐내기 때문에 그 부분도 신경써야하는데.. 노치, 펀치홀 디자인과 같은 요소들이 생겨 이 또한 신경을 써야한다. 개인적으로 느끼기에 요즘 나온 게임인데도 불구하고, 화면의 양옆에 광활한 레터박스를 만들어놓은 게임들은 조금 옛날 느낌이 난다고 해야하나? 나는 그렇게 느껴진다. 특히나 내 폰은 z플립3 이기 때문에 세로폭이 길어서 레터박스가 엄청나게 커지는데 그러면 유저들이 조금 답답함을 느낄 수 있다고 생각한다. 아무튼 노치와 펀치홀을 가지고있는 핸드폰에 대응하기 위해서 우린 두가지 선택을 할 수 있다. 1. 레터박스 없이 전체 화..