![]() |
![]() |
Ch 01. 선형자료구조 - 08. 해쉬테이블과 딕셔너리(Hashtable & Dictionary)
이 친구들은 빠른것이 가장 큰 장점이다!
해시테이블은 자바의 해시맵과 비슷한 느낌이라고 생각하면 편한듯. 워낙 많이 써서 구조는 익숙하다.
딕셔너리도 다 비슷한 구조라서 쉽게 파악할 수 있어서 좋다!
해쉬테이블은 Key 값과 Value값을 기준으로 데이터를 분류하는 자료구조임. 미리 저장공간을 확보하기 때문에 메모리 효율이 좋지 않지만 검색 기능을 위주로 사용한다면 굉장히 빠르게 할 수 있다.
Add, Remove 등을 사용해서 값을 추가하고 삭제할 수 있다.
해시테이블의 기본 개념은 해시 함수라는 곳에 키값을 넣어서 해시코드를 반환받으면 버킷이라는 저장공간에 매핑해줌.
Object 타입을 받아가는 형식이기 때문에 안에서 박싱과 언박싱이 계속해서 발생하기 때문에 성능 저하가 있다. 그래서 닷넷에서는 딕셔너리를 더 많이 사용하고 추천하고 있음.
아 이거 강의... 선생님 발음 가끔 뭉개지는 구간은 못알아듣겠어서 자막같은거 있으면 좋겠다...
나머지 연산은 모드연산이라고도 한다고 함. 이게 뭔가 싶어서 한참 반복해서 들었다.
Ch 02. 알고리즘 - 01. 재귀호출(Recursive Call)
재귀호출이란 함수 내부에서 자기 자신을 반복적으로 호출하는 것이며,
반복 행위를 하는 함수를 재귀함수(Recursive Function)라고 한다.
알고리즘을 구현할 때 유용하지만 끝나는 지점을 지정하지 않으면 무한반복에 빠지게 되니 주의할 것!
반드시 종료 조건을 정해두고, 스택오버플로우를 조심하자.
데이터의 흐름을 보고 싶을 때 사용하기도 함. 팩토리얼(Factorial)을 생각하면 이해하기 쉬움!
* 팩토리얼(Factorial)
정규식
f(n) = n * f(n-1)
단 f(1) = 1
5! = 5 x 4 x 3 x 2 x 1 = 120
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public int FuncFactorial(int nNumber)
{
int nResult = 0;
if(nNumber == 1)
{
nResult = 1;
}
else
{
nResult = nNumber * FuncFactorial(nNumber - 1);
}
return nResult;
}
|
cs |
그리고 대표적으로 피보나치 수열(Fibonacci numbers)이 있음.
* 피보나치 수열(Fibonacci numbers)
정규식
f(n)=1(n<=2)
f(n)=f(n-2)+f(n-1)(n>2)
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public int Fibonacci(int nSequence)
{
int nResult = 0;
if(nSequence == 1 || nSequence ==2)
{
nResult = 1;
}
else
{
nResult = Fibonacci(nSequence -1) + Fibonacci(nSequence - 2);
}
return nResult;
}
|
cs |
https://bit.ly/37BpXiC
공백제외 : 총 1,118자 (1,683byte)
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #C#과유니티로배우는게임개발올인원패키지Online. #C#과 유니티로 배우는 게임 개발 올인원 패키지 Online.
'인강 > 패스트캠퍼스_환급챌린지' 카테고리의 다른 글
4주차 데일리 미션 제출 완료 (0) | 2021.10.03 |
---|---|
[패스트캠퍼스 챌린지 28일차] 문제 풀이로 실전 응용력을 다지는 필수 자료구조 (0) | 2021.10.03 |
[패스트캠퍼스 챌린지 26일차] 문제 풀이로 실전 응용력을 다지는 필수 자료구조 (0) | 2021.10.01 |
[패스트캠퍼스 챌린지 25일차] 문제 풀이로 실전 응용력을 다지는 필수 자료구조 (0) | 2021.09.30 |
[패스트캠퍼스 챌린지 24일차] 문제 풀이로 실전 응용력을 다지는 필수 자료구조 (0) | 2021.09.29 |
댓글