반응형

알고리즘 8

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

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

518일동안 단 하루도 빠지지 않고 알고리즘을 풀었다.

518일동안 단 하루도 빠지지 않고 알고리즘을 풀었다. 💡 글을 읽고... 개발자라면 알고리즘과 영원히 떨어질 수 없는 사이입니다. 누군가는 개발할때 알고리즘이 전혀 필요없다고 하지만 알고리즘을 이해하고 개발을 하는것과 그렇지 않은건 천지차이라고 생각합니다. 글쓴이는 개발이 "논리적 사고를 기반으로 가설을 세우고 증명하는 일련의 과정이"라고 생각하고 이것들을 훈련시키면 생산성을 높일 수 있다는 생각으로 2년이 넘는 시간동안 알고리즘을 풀었다고 합니다. 상위 0.5%에 진입 했음에도 "배움에는 끝이없다."라고 하는 글쓴이를 보면서 진짜 꾸준함과 실행력에 감탄과 박수가 절로 나왔습니다. 👏 이 글을 추천하는 이유는 이렇습니다. ✔️ 어떤 단계로 알고리즘을 공부해야 하는지, 알고리즘 사이트 추천 ✔️ Code..

공부/자기계발 2023.03.04

정렬 알고리즘 중 가장 빠른 알고리즘은 무엇일까?

가장 빠른 정렬 알고리즘은 해결하려는 문제의 특정 상황에 따라 다르지만, 아마 퀵 정렬이 일반적으로 가장 빠릅니다. 세상에는 정말 다양한 정렬 알고리즘이 있으며 각각 고유한 강점과 약점이 있습니다. 그렇지만 가장 일반적으로 사용되는 정렬 알고리즘은 다음과 같습니다. 퀵 정렬 : 퀵 정렬은 실제로 널리 사용되는 빠르고 효율적인 정렬 알고리즘입니다. 평균 케이스 시간 복잡도는 O(n log n)이고 최악의 경우 시간 복잡도는 O(n^2)입니다. 퀵 정렬은 분할 정복을 사용하여 요소를 제자리에서 정렬하기 때문에 효율적입니다. 즉, 정렬을 수행하는 데 추가 메모리가 필요하지 않습니다. 병합 정렬 : 병합 정렬은 시간 복잡도가 O(n log n)인 또 다른 효율적인 정렬 알고리즘입니다. 입력을 더 작은 청크로 나..

공부/기타 2022.12.29
반응형