전체 글 18

C++ 알고리즘 서적 정리

"코딩 테스트를 위한 자료 구조와 알고리즘 with C++(존 캐리, 셰리안 도시, 파야스 라잔 저/황선규 역)" 난이도가 높아보인다. 윗분이 말씀하신 저 책(C로 배우는 알고리즘)도 정말 명서입니다. 추가적으로 PS 분야의 유명서적들을 좀 살펴보면, 1. 알고리즘 트레이닝(통칭 파란책) 원서로 오래전에 보아 내용이 정확히는 생각이 안나지만 유명한 책입니다. 역서는 보지않아 번역이 어떤지는 잘모르겠네요. http://www.insightbook.co.kr/book/programming-insight/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%ED%8A%B8%EB%A0%88%EC%9D%B4%EB%8B%9D 2. 알고리즘 문제 해결 전략(통칭 종만북, 하얀책) 한국 PS분야중 제일 ..

C++ 2022.04.09

동적할당

동적할당 #1, #2 #include using namespace std; // 오늘의 주제 : 동적 할당 // 메모리 구조 복습 // - 실행할 코드가 저장되는 영역 -> 코드 영역 // - 전역(global) / 정적(static) 변수 -> 데이터 영역 // - 지역 변수/ 매개 변수 -> 스택 영역 // - 동적 할당 -> 힙 영역 // 지금까지 데이터 영역/ 스택 영역을 이용해서 // 이런 저런 프로그램을 잘 만들어왔다. // 굳이 새로운 영역이 필요할까? // 실제 상황 // - MMORPG 동접 1명~5만명, 몬스터 1마리~500만마리 // - 몬스터 생성 이벤트 -> 5분동안 몬스터가 10배 많이 나옴. // - 스텍 영역 // 함수가 끝나면 같이 정리되는 불안정한 메모리 // 여기에 몬스..

C++ 2022.04.01

object

객체지향 시작 #include using namespace std; //오늘의 주제 : 객체지향 프로그래밍 // 데이터 + 가공(로직, 동작) // 객체지향 = 객체 // 객체란? 플레이어, 몬스터, GameRoom // Knight를 설계해보자. // - 속성(데이터) : hp, attack, y, x // - 기능(동작) : Move, Attack, Die // 클래스와 struct의 차이점은 은닉성 차이밖에 없다. class Knight // 설계도를 만들었다고 당장 메모리에 올라가는 건 아니다. { public: //멤버 함수 선언 // 같은 클래스 내에서는 멤버변수에 멤버함수 접근할 수 있다. void Move(int y, int x); void Attack(); void Die() { hp =..

C++ 2022.03.27

#include using namespace std; // 오늘의 주제 : 로또 번호 생성기 void Swap(int& a, int& b) { int temp = a; a = b; b = temp; } void Sort(int numbers[], int count) { for (int i = 0; i < count; i++) { // i 번째 값이 제일 좋은 후보라고 가정 int best = i; // 다른 후보와 비교를 통해 제일 좋은 후보를 찾아나선다. for (int j = i + 1; j < count; j++) { if (numbers[j] < numbers[best]) best = j; } // 제일 좋은 후보와 교체하는 과정 if (i != best) Swap(numbers[i], numbe..

C++ 2022.03.20

포인터

포인터 맛보기 #include using namespace std; // 오늘의 주제 : 포인터 void SetHp(int* hp) { *hp = 100; } int main() { int hp = 1; SetHp(&hp); // SetHp의 매개변수를 int* hp로 하고. 이렇게 하면 main에 있는 함수에 hp로 접근하여 값을 바꾸어준다. //주소로 들어가서 값을 바꾸어주는거니까. //지금까지 사용한 방식 // number라는 이름의 4바이트 정수 타입의 바구니를 만든다. // number라는 변수 스택 메모리에 할당 // number = 1 이라 함은, number 바구니에 1이라는 숫자를 넣으라는 의미. // 따라서 스텍 메모리에 있는 특정 주소 (number 바구니) 에 우리가 원하는 값을 넣..

C++ 2022.03.14

C++ 입문 데이터 갖고 놀기

프로젝트 우클릭해서 Open folder in file explorer 가서 주소창에 cmd. 하면 그 주소창에 cmd 실행된다. 거기서 exe 파일 입력해서 실행시켜주면 파일 실행된다. 확장자 sln 을 실행시켜주면 visual studio 아까 작업하던 프로젝트가 나온다. 어셈블리어 - 컴퓨터가 바라보는 세상. 디버깅켠 상태에서 debug-window-disassembly 누르면 어셈블리어가 나온다. 로우레벨까지 이해하고 싶으면 어셈블리어 이해가 필요하다. 라는 정도만 알아두자. 오랜만에 보면 코드 기억이 안날수도 있으므로 주석 달아주는 습관? 있으면 좋긴 하다. 프로그래밍 단순하게 생각하면 : 적절한 데이터를 저장하고 가공하는 것 : 데이터 + 로직 part1 정수 #include using nam..

C++ 2022.03.09