자료구조 | C++ | 연산자 오버로딩 (Overload)
·
개발/C++
개요오랜만에 수업 정리 글입니다.오랜만인만큼 상당히 예전 진도입니다. 이거 이용해서 수행평가까지 봤어요.수행평가 만점임(중요) 아무튼 오늘 정리할 내용은 연산자 오버로딩 입니다. 연산자 중복이란 자랑스러운 한국어 냅두고 영어를 쓰는 이유는 있어보여서 입니다.  그게 뭔데 연산자 오버로딩은 함수처럼 연산자를 오버로딩 하는 것을 뜻합니다.보통 연산자를 통해 연산할 수 없는 것 (클래스 등) 끼리 더하거나 코드의 편의성을 높이기 위해 사용합니다.  이러한 클래스가 있다고 해봅시다.class MyClass{ int a; int b; public: MyClass(int x, int y) : a{x}, b{y} {};}  근데 저는 이 클래스 두개를 더했을때 각자의 클래스의 a와 b변수를 더한 새 클래스..
게임 프로그래밍 | C++ | 메모리 구조
·
개발/C++
개요 제가 저번 글에서 예고했듯이 이번 글은 메모리와 빌드입니다....그러고보니 저번 글을 쓴게 언제였죠? 우와... 자그마치 6일전입니다.메모리와 빌드는 거의 2주에서 3주 전 진도인데 이제야 정리하기 시작하는게 참 양심없긴 하지만...월요일에 갑자기 몸살이 찾아온 뒤로 현재 위치가 집인 상황에서 후딱 해치우겠습니다.아, 그리고 저번 글의 제목도 원래는 '열거형과 힙' 이였습니다.근데 어짜피 메모리 정리할때 힙도 정리할텐데 굳이 애매한 분량으로 정리해야 하나 해서 분리시켰죠.라고 적었는데 메모리 분량이 생각보다 길어서 분리시키겠습니다.뭔가 했던말 같죠? 익숙하다면 당신의 눈이 정확한겁니다! 빌드는 다음 글로 작성하겠습니다. 꼭! 일주일 안에 뵙죠.    메모리선생님 가라사대, C++에서 메모리는 매우 ..
[백준] | C++ | 2869. 달팽이는 올라가고 싶다
·
알고리즘/C++
개요 이제 실버2 입니다. 백준을 처음 풀때는 몰라도 친구에게 solved.ac 를 전수받고 난 뒤에는 '단계별로 풀어보기' 를 사용하기보단 그냥 나에게 맞다고 생각되는 티어의 분류에서 적당한 문제를 골라 풀었는데 이거 상당히 물건입니다, 뇌를 짜내야하는 실버 4 이상의 문제가 아닌 적당히 뇌를 쓸 수 있고 피로가 덜한 문제들을 풀 수 있었습니다. 이제 solved.ac 에서 하남자처럼 문제 안 골라도 됩니다. 그래서 오늘 풀 문제는 '일반 수학 1' 의 마지막 문제, 2869. 달팽이는 올라가고 싶다 입니다. 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간..
게임 프로그래밍 | C++ | 열거형
·
개발/C++
개요제가 저번 글에서 다음 글은 메모리와 빌드가 될 것이라고 얘기한적이 있습니다.하지만 오늘의 주제는 열거형(Enum)입니다. 왜냐하면 생각해보니 어제 정리했던 콘솔 / 입력 이 제가 지금 정리하는 열거형 보다 다음 진도이기 때문입니다.겹치는 부분은 별로 없기 때문에 빠르게 다시 정리하러 왔습니다. 열거형 단 하나만 다루기 떄문에 분량이 굉장히 짧습니다.원래 같이 배운 힙 메모리에 관한 내용이 있는데 이건 다음 정리글이 될 예정인 메모리와 빌드에서 같이 정리하겠습니다.     열거형열거형, Enum은 int형 상수에 이름을 붙인 것과 같습니다.  #define과 비슷한 느낌이지만 매크로가 아니고 int와의 형변환이 자유롭지 않습니다. enum은 다음과 같이 선언하며enum FRUIT{ APPLE, //..
01. LLM 모델의 파라미터
·
기타/AI
개요저번 글인 생성형 AI 소개에 이어 써보겠습니다.LLM 모델이 기억하는 원리나 각종 파라미터 등에 대해 적어볼겁니다. LLM이 뭔데LLM(Large Language Model)은 대규모 언어 모델이란 뜻입니다.말 그대로 진짜 대규모입니다. 엄청나게 거대하고 방대합니다.지금은 거들떠도 안보는 GPT-3도 1750억개의 파라미터로 이루어져있습니다. LLM은 이 단어 다음에 올 가장 자연스러운 단어가 무엇인지 추측하는 알고리즘입니다.그리고 이러한 어마어마한 학습량을 기반으로 더욱 자연스러운 단어를 선별해 내서 빅스비나 시리 같은 일반 AI보다 훨씬 사람냄새나는 답변을 제공합니다. 자연어 생성(NLP)작업을 통한 딥 러닝 알고리즘이라고도 하는데 잘 모르겠으니 넘어가죠. 작동방금 위에서 말했듯이..
00. 생성형 AI란?
·
기타/AI
개요AI는 인간의 학습능력, 추론능력, 지각능력을 인공적으로 구현시키는 컴퓨터과학의 한 분야입니다.그렇다면 생성형 AI는 대체 뭘까요? 조금 더 심화적인 정리는 LLM 모델에 관한 정리를 참고해주세요.AI 관련 글을 쓰면 유입이 뛰는 것 같은데 저 글은 아무도 안보더라구요... 여기서라도 홍보하겠습니다.    생성형 AI기존 AI들은 이미 쌓여있던 데이터를 학습해서 분석하는 역할을 주로 했습니다.하지만 생성형 AI는 그 데이터를 분석하여 새로운 콘텐츠를 만드는 대에 초점을 두었죠. 저희가 흔히 쓰는 GPT. 그것도 마찬가지로 생성형 AI입니다. 이놈들은 엄청난 양의 텍스트 데이터를 처먹으며 자연스러운 문맥, 문장들을 학습하고 생성하는데에 특화돼있습니다. 그러니까 이 단어..
게임 프로그래밍 | C++ | 콘솔 / 입력
·
개발/C++
개요앞으로 주구장창 하게 될 얘기일지도 모르겠지만 게임 프로그래밍 시간은 특징이 하나 있습니다.'이번엔 이것을 하겠습니다.' 라고 하고선 딱 그것만 하지 않아요. 수업 중간중간에 자잘한 것들을 자주 배우고 그것을 이 글의 제목에 대주제와 함께 녹여낼 능지가 저에겐 없습니다.오늘은 메모리와 빌드에 대해 배웠다고 적고있지만 사실 메모리와 빌드만 배운게 아닙니다.콘솔창에 관해서도 배웠는데 아직 미미한 수준이기에 메인으로 배운 메모리와 빌드를 대주제로 삼은 것이죠. 라고... 적었었는데 콘솔 분량이 생각보다 너무 길어지더군요.콘솔과 메모리와 빌드는 분리하겠습니다.    콘솔콘솔창에서 입력을 받으려면 cin나 scanf() 같은 것들을 사용합니다.하지만 저희가 앞으로 만들게임은 텍스트 게임에 국한되지 않고 봄버맨..
자료구조 | C++ | 클래스
·
개발/C++
개요드디어 뭔가 C++에서 객체지향스러운걸 배우기 시작했습니다.대충 클래스는 틀이고... 거기서 만들어진건 객체고...다 C#에서 이미 배웠던겁니다.     클래스와 객체class Circle{public : int radius; string color; double calcArea() { return 3.14f * radius * radius; }} 익숙하죠?저거 그대로 C#에 옮겨가도 딱히 위화감이 없습니다. 한줄 한줄 풀어보자면... class Circle : class 키워드로 클래스를 선언하고 클래스 이름을 적습니다. public : : 접근 제한자라고 불리고 public 이면 밖에서 맘대로 접근 할 수 있고 private이면 접근할 수 없습니다.protect..