반응형

자료구조 9

Part 2-1-2. 환경 설정

[환경 설정] [게임의 3 단계] 1. 입력 유저의 입력 2. 게임 로직 입력에 따른 어떤 실행 3. 렌더링 로직에 따라 게임 화면에 그래픽을 그림 [Console 함수] Console.WriteLine 콘솔 창에 문자열 출력하고 자동으로 한 줄 띄워준다. (Line) Console.WriteLine(“문자열"), Console.WriteLine(); 👉 단순 개행. std::endl; 같은 Console.SetCursorPosition 콘솔 창의 커서 위치를 세팅한다. Console.SetCursorPosition(0, 0); 👉 커서 위치가 콘솔 창의 맨 왼쪽 상단에. Console.CursorVisible 콘솔 창에서 커서 위치를 보이게 할건지 아닌지. Console.CursorVisible = f..

Part 2-1-1. Big-O 표기법

Big-O 표기법 [Big-O 표기법을 사용하는 이유] 알고리즘의 성능을 객관적으로 측정하기 위하여 사용. 단순히 실행 속도를 비교하는 것으로 알고리즘 성능을 측정하는건 컴퓨터 실행 환경에 따라 차이가 있기 때문에 별로 좋지 못하다. 입력이 적은 구간과 많은 구간에서 성능이 확연히 차이가 나는 경우도 있을 수 있다. [표기 방법] 1단계 : 수행 연산의 개수를 대략적으로 판단 어떤 연산이 1 개만 있다면 1 개 어떤 연산이 N 번 도는 for문 안에 있다면 N 개 어떤 연산이 N 번 도는 이중 for문 안에 있다면 N^2 개 2단계 : 대장만 남긴다. public int Add(int N) { int sum = 0; // 1 번 for (int i = 0; i < N; i++) // N 번 sum += ..

신입 클라 프로그래머의 수준은 어디까지일까요?

Q. C++,STL...등등 공부하면서 여러군데 이력서도 써보고 하는데 연락오는 곳이 한군데도 없네요.... 디자인과를 나와서 그런가.... 아니면 이력서를 뭔가 잘못썼나...업계상황이 안좋은가... 여러 생각이 들게 만드네요 흑 공부를 계속하다보니 시스템프로그래밍 , 서버쪽을 보니 공부할께 차고 넘치네요. 넉두리겸 다른 클라플머 준비하시는 분들은 어떻게 준비하는지 궁금해서 올립니다 다들 파이팅. A. property 회사마다 개발환경이 각각달라요. 회사입장에선 개발중인 프로젝트와 장르의 비슷한 포트폴리오와 사용중인 개발환경에 익숙한 사람을 뽑으려고 하죠. 그래서 프로그래머는 여러가지(C++, C#, 다이렉트, 유니티, 언리얼 등)를 할줄 알아야 한다고 생각해요. C++, STL은 게임 플머에겐 너무나도..

회사/게임잡 2023.08.01

해시 맵(Hash map)이란?

1. 해시 맵(Hash map)이란? 해시 맵은 효율적인 조회, 삽입, 삭제를 위해 키를 값에 매핑하는 데이터 구조입니다. 해시 테이블 또는 사전(Dictionary)이라고도 합니다. 해시 맵은 해시 함수를 사용하여 원하는 값을 찾을 수 있는 버킷 또는 슬롯 배열로 인덱스를 계산합니다. 해시 맵의 기본 개념은 키-값 쌍을 배열에 저장하는 것으로, 키는 해시 함수를 사용하여 배열 인덱스로 해시됩니다. 해시 함수는 키를 입력으로 받아 해당 값을 찾을 수 있는 배열의 인덱스를 반환합니다. 따라서 배열에서 한 번만 조회하면 되므로 해시 맵에서 특정 키를 매우 빠르게 검색할 수 있습니다. 2. 해시 맵(Hash map)의 장점 해시 맵의 주요 장점 중 하나는 조회, 삽입, 삭제의 시간 복잡도가 평균적으로 일정하다..

공부/자료구조 2023.03.31

큐(Queue)란?

1. 큐(Queue)란? 큐는 요소를 선입선출(FIFO) 방식으로 저장하는 데이터 구조의 한 유형입니다. 즉, 큐에 가장 먼저 추가된 요소가 가장 먼저 제거됩니다. 큐는 일반적으로 작업 스케줄링이나 메시지 전달 시스템과 같이 요소를 수신한 순서대로 처리해야 하는 상황에서 사용됩니다. 2. 큐(Queue)에서 사용되는 작업 1. 큐에 추가(Enqueue): 이 작업은 요소를 큐의 끝에 추가합니다. 2. 큐에 해제(Dequeue): 이 작업은 큐의 맨 앞에 있는 요소를 제거합니다. 3. Peek: 이 작업은 큐의 앞쪽에 있는 요소를 제거하지 않고 반환합니다. 4. IsEmpty: 이 작업은 큐가 비어 있는지 확인합니다. 5. Size: 이 작업은 큐에 있는 요소의 수를 반환합니다. 3. 큐(Queue)의 구..

공부/자료구조 2023.03.30

C#에서 Dictionary는 맵일까?, 해쉬 맵일까?

C#에서 Dictionary 데이터 구조는 해시 맵의 한 유형인 해시 테이블을 구현한 것입니다. 해시 테이블은 해시 함수를 사용하여 키를 배열의 인덱스에 매핑하는 데이터 구조입니다. 배열의 각 인덱스는 동일한 인덱스에 매핑되는 값을 포함하는 링크된 목록 또는 버킷과 연결됩니다. 해시 함수는 특정 키가 포함된 버킷을 빠르게 찾는 데 사용되며, 링크된 목록 또는 버킷은 여러 키가 동일한 인덱스에 매핑될 때 발생하는 모든 충돌을 해결하는 데 사용됩니다. C#의 Dictionary 클래스는 해시 테이블을 사용하여 키-값 쌍을 저장합니다. 이 클래스는 키의 해시 코드를 사용하여 키-값 쌍이 저장되어야 하는 내부 배열의 인덱스를 결정한 다음, 동일성 비교를 사용하여 해당 인덱스와 연결된 버킷 내에서 특정 키-값 쌍..

공부/C# 2023.03.05

자주 언급되는 로드 밸런싱 알고리즘 6가지

자주 언급되는 로드 밸런싱 알고리즘 6가지 1️⃣ Round Robin 클라이언트의 요청이 각 서버에 순차적으로 전송되는 알고리즘. 📌 추가: 라운드 로빈의 가장 큰 문제점은 요청이 전송된 서버가 모두 같은 스펙을 갖고 있다고 가정하는 것입니다. 서버의 CPU, RAM 등과 같은 스펙에 따라 요청을 분포하지 않고 순차적으로 전달합니다. 따라서 서버의 스펙이 비슷한 경우에 최적화되어 있지만, 그렇지 않은 경우 단점이 많아 아래 weighted round robin이나 hash와 같은 알고리즘이 대신 사용됩니다. 2️⃣ Sticky Round Robin 위 일반 라운드 로빈 알고리즘에서 조금 향상된 버전이다. 사람 A의 요청이 서버 A에 전달되면 다음 요청도 서버 A에 계속 전송되는 알고리즘이다. 📌 추가:..

공부/자기계발 2023.03.04

우선순위 큐(period_queue)의 개념

우선순위 큐(period_queue)는 일반 큐와 유사하게 일련의 요소를 저장하는 데 사용되는 데이터 구조입니다. 그러나 우선순위 큐(period_queue)의 대기열에는 각 요소가 기간 또는 시간 간격과 연결되는 추가 제약 조건이 있습니다. 대기열의 각 요소는 값과 기간으로 구성됩니다. 기간은 요소가 제거되기 전에 대기열에 남아 있어야 하는 시간을 지정합니다. 요소가 기간 대기열에 추가되면 해당 기간을 사용하여 대기열에서 제거해야 하는 시기를 결정합니다. 기간이 만료되면 요소가 대기열에서 제거되고 더 이상 액세스할 수 없습니다. 우선순위 큐(period_queue)는 일반 큐와 타이머의 조합을 사용하여 구현할 수 있습니다. 타이머는 대기열의 요소와 관련된 기간 만료를 추적하는 데 사용됩니다. 요소가 대..

공부/C++ 2023.01.13
반응형