1. 재귀에 대한 고찰 > 수학시간마다 점화식(수학적 귀납법)이 나올 때마다, 뭔소린가 싶었다. 프로그래밍에서 재귀가 나올 때, 본능적으로 점화식 = 재귀라는 것을 느꼈다. 교수님 says, 처음이 되면 -> 끝까지 된다.(때문에 믿자)고 하셨다. 이런 작은 TIP을
앵간한 CS는 A+받을 정도로 공부해서, 한번씩 본 내용들이다. 중요한 내용을 상기시키거나, 아주 중요한 내용을 정리한다. pic1 메모리 구조 1. 코드(텍스트) 영역 1. 코드(텍스트)가 저장되는 영역 말 그대로, 우리가 작성한 코드가 저장되는 영역이다. CPU
그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘Brute Force(완전 탐색) 기법 중 하나스택 or 재귀를 이용해 구현임의 노드에서 다음 브랜치로 넘어가기 전에 해당 브랜치를 모두 탐색하는 방법일반적인 상황에서 DFS는 BFS의 기능으로 모두 대체 가능일반적인
그래프에서 가까운 노드부터 우선적으로 탐색하는 알고리즘Brute Force(완전 탐색) 알고리즘큐를 활용해 구현일반적인 상황에서 DFS는 BFS의 기능으로 모두 대체 가능일반적인 상황에서 트리의 높이를 리턴하는 BFS의 특성상 BFS가 DFS보다 유용하다.단, 그래프와
Brute Force : 완전탐색
현재 최적이라 생각되는 것을 선택해나가는 방식지역해에 빠질 수 있음 => 최적해 보장 XGreedy는 두 조건이 성립된 문제에 한해 적용 가능탐욕 선택 속성(Greedy Choice Property)\-지역해 = 최적해인 경우 적용 가능최적 부분 구조(Optimal S
에라토스테네스라는 뭐시깽이가 만든 소수 판별 알고리즘개념(쉽다!): 소수의 배수 != 소수bool 벡터를 만들고, true로 초기화해준다.0과 1은 소수가 아니므로, false로 초기화한다.for문을 돌며, 소수를 체크한다.3-1. 소수는 제곱으로 판별한다.현재 수(i
알고리즘의 기본 정렬에 대해 알아보자특정한 기준(오름차순 or 내림차순 ...etc)으로 수열을 배열하는 것여러 정렬 알고리즘에 대해 알아보자단순 but 비효율적: 삽입, 선택, 버블복잡 but 효율적: 퀵, 힙, 합병, 기수손 안의 카드를 정렬하는 방법정해진 카드 하
분할 + 정복하는 알고리즘최종해(전체 문제의 해)를 구할 때까지 아래 과정 재귀를 통해 반복 1\. 분할(Devide): 전체 문제를 세부 문제로 분할 2\. 정복(Devide): 세부 문제를 정복(해결) 3\. 결합(Combine): 정복한 작은 해를 조합 사용
이분 탐색 : Binary Search > 이분 탐색이라 말하면 못알아먹는데 Binary Search라 말하면 알아먹는다. [IMP] 정렬된 배열에만 사용 가능한 탐색기법 중앙 값을 기반으로 불필요한 탐색범위를 줄여가는 기법 시간 복잡도 $$O(log_2n)$$
1차원 배열에서 두 개의 포인터를 조작하여 원하는 결과를 얻는 알고리즘포인터 : 변소라고 생각하면 쉬움두 개의 점의 위치를 기록하며 처리하는 알고리즘원 포인터보다 시간 개선 가능슬라이딩 윈도우와 유사단 슬라이딩 윈도우는 탐색 과정에서 구간의 넓이가 일정정렬된 두 리스트
슬라이딩 + 윈도우슬라이딩 : 미끄러지듯이 이동윈도우 : 특정 범위(고정)고정된 특정 범위를 미끄러지듯이 이동시키며 탐색하는 방법투 포인터와 유사투 포인터와 달리, 부분 배열의 길이가 고정이므로, 변수가 2개가 아닌 1개 필요시간 복잡도 : $$O(N^2)의 시간 복잡
Bit + MaskingBit : 프로그램 데이터의 최소 단위Masking : 색칠하는 것 / 1 or 0컴퓨터는 내부적으로 모든 자료를 이진수로 표현비트 마스크 : 정수의 이진수 표현을 자료구조로 쓰는 기법장점더 빠른 수행시간더 간결한 코드더 적은 메모리 사용동일한
재귀 / DFS에 대한 학습 필요재귀(DFS)적으로 문제를 하나씩 풀어가면서 현재 재귀를 통해 확인 중인 노드(상태)가 제한된 조건에 위배되는지 판단하고, 만약 해당 노드가 제한된 조건을 위배한다면 그 노드를 제외하고 다음 단계로 나아가는 방식가지치기(Pruning):
\# 게임 개발에 자주 사용되는 디자인 패턴만을 다룰 것 디자인 패턴 : Design Pattern > 소프트 웨어 개발 중 자주 발생하는 문제들에 대한 해결책 미친놈들의 뇌를 상속받는 것과 동일 나도 미친놈이 된다. 디자인 패턴 이점 > 수세기동안 고수들이 개
네트워크 프로그래밍이 반영된 베르의 AmongUs 게임 제작 시리즈을 따라 개발 중네트워크 프로그래밍의 개념이 포함된 Mirror API를 통해 개발을 수행향후 Photon을 통한 멀티 게임 개발을 계획하고 있고,현재 단계에서 원활한 AmongUs 게임 개발과 이해를
그래프의 최단 경로 문제를 푸는 알고리즘다익스트라에서 발전됨Dijkstra: 현재 정점과 다음 정점 사이 가중치(ex.거리)만을 고려해 최단 경로 결정A\*: 현재 정점과 다음 정점 사이 가중치와 현재 정점에서 목표 지점까지의 거리(휴리스틱 코스트(heuristic c
데이터 처리 모델 방식데이터 처리 모델: 데이터를 받는 방식요청A -> 응답A(필수) -> 요청B요청/동작/작업에 따른 응답을 받아야 다음 요청/동작/작업 수행 가능요청 A -> 요청 B -> ... 응답A/응답B응답을 받지 않아도 다음 요청/동작/작업 수행 가능병렬적
데이터 통신 프로토콜프로토콜: 말은 간지나보이지만, 그냥 약속 -> 데이터 전송할 때, 이러자~전송 제어 프로토콜인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜UDP()