[C++] 스택 직접 구현해보기
프로그래밍 공부/자료구조&알고리즘 공부2023. 4. 12. 01:34[C++] 스택 직접 구현해보기

스택(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 - 정의..

델리게이트와 이벤트(Delegate & Event)
프로그래밍 공부/C# 프로그래밍2023. 3. 21. 01:44델리게이트와 이벤트(Delegate & Event)

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

코틀린을 공부해보자 - (2)
프로그래밍 공부/코틀린2023. 2. 15. 01:13코틀린을 공부해보자 - (2)

배열과 리스트 배열 val myArray1 = arrayOf(1,2,"메롱") var myArray2 = arrayOf(1,2,"메롱") myArray1[0] = 10 myArray2[0] = 10 println(myArray1[0]) println(myArray2[0]) 배열은 위와같이 초기화를 해줄 수 있고, 인덱스로 접근해서 값도 변경이 가능하다. 값을 변경할때 val,var인지 상관이 없는것은 주소값을 참조하기 때문이다. 다만, 새로 초기화를 하는 경우에 val로 선언한 배열은 에러를 뱉어낸다. 리스트 List & MutableList var myList1 = listOf(1,2,3) val myList2 = listOf(1,2,"메롱") myList1[0] = 10 myList2[0] = 10 ..

코틀린을 공부해보자 - (1)
프로그래밍 공부/코틀린2023. 2. 14. 23:46코틀린을 공부해보자 - (1)

안드로이드 스튜디오 + 코틀린을 통해 안드로이드 어플 제작을 공부해보려고 한다. 궁금하기도 했고, 알아두면 안드로이드 OS가 돌아가는 방식에 대해 더 알 수 있다는 조언을 들었다. 현 회사에서 유니티로 모바일게임 제작을 하기 때문에, 알아두면 더 좋을 것 같았다. 시작해보자. 코틀린과 안드로이드 스튜디오 코틀린은 구글에서 채택한 안드로이드의 공식 언어이다. 기존에는 자바를 사용했지만 현재는 코틀린이 공식언어가 됐다. 코틀린이 공식 언어가 되어버린 이유.. 구글과 오라클의 뒷 얘기도 있던데 정확히는 보지 못했다. 아무튼 코틀린은 자바를 100% 호환한다고 한다. Download Android Studio & App Tools - Android Developers Download Android Studio ..

디자인 패턴 - <데코레이터 패턴> (Decorator Pattern)
프로그래밍 공부/디자인 패턴2022. 11. 21. 00:07디자인 패턴 - <데코레이터 패턴> (Decorator Pattern)

이번에 공부해본 디자인 패턴은 '데코레이터 패턴' 이다. 말 그대로 장식하고 꾸며주는 패턴이다. 처음 읽을때는 이해가 잘 안돼서 여러번 반복해서 읽다가 코드를 보고 어느정도 이해를 하게 됐다. 책에 나온 예제는 '스타버스' 라고 하는 카페의 메뉴 결제 시스템에 대한 이야기가 나온다. 커피에도 종류가 있고, 또 각자의 입맛에 따라 시럽,두유,우유 등등.. 여러가지를 추가 할 수 있다. 먼저 이렇게 추가가 될 수 있는 것들이 정해져 있지 않은 , 즉 결제를 할 때마다 사람에 따라 모든 선택지(메뉴)가 달라질수도 있는 시스템을 만들때 어떻게 코드를 짤 것인가 라고 생각을 해보면 마냥 쉽지만은 않다. 똑같이 카페를 예제로 코드를 만들면 재미가 없으니 떡볶이 가게로 한번 예를 들어볼까 한다. JW의 떡볶이 가게 ..

디자인 패턴 - <옵저버 패턴> (Observer Pattern)
프로그래밍 공부/디자인 패턴2022. 11. 20. 17:55디자인 패턴 - <옵저버 패턴> (Observer Pattern)

옵저버 패턴은 예전에도 공부를 했었지만, 많이 쓰이고 있고 앞으로도 쓸 일이 많을 것 같아서 .. 책을보고 다시 공부를 해봤다. 옵저버 패턴 옵저버 패턴은 신문사의 구독을 생각하면 편하다. 신문사들은 날마다 신문을 찍어내면 자기들의 구독자들에게 매일같이 신문을 보내준다. 이와 같이 주제(Subject)클래스(신문사)가 있고, 미리 이 주제에 대한 변화나 알림을 받아야 하는 옵저버들을 등록해놓는다. 그리고 어떠한 변화나 알림이 생기면 주제 클래스에서 옵저버들에게 일괄적으로 알림을 보내주는 구조다. 내가 만든 예시 - 환율이 바뀔때마다 알려주는 시스템 옵저버 패턴을 클래스로 구현해놓고 함수를 오버라이드해서 쓰게끔 구현해놓은 코드도 봤는데, 일반적으로는 인터페이스를 이용해서 많이 쓴다고 한다. 그래서 은행에서..

image