Unity_2기 내일배움캠프 TIL

Unity_2기 3주차 (231115)

잼잼재미 2023. 11. 15. 20:20

오늘은 오전부터 알고리즘에 대한 특강이 있었다. 알고리즘이란, 문제 해결 능력, 입력된 자료를 토대로하여 원하는 출력을 유도하여 내는 규칙의 집합이고, 프로그래머는 생각할 수 있는 알고리즘 중에 어떤게 최선의 알고리즘인지 찾아내는 능력이 필요하다고 했다. 그래서 앞으로 하루의 시작을 내일배움캠프에서 제공하는 알고리즘 코드카타 문제 풀이로 시작하기로 했고, 사실 나는 매일 조금씩 알고리즘 카타 문제를 풀어서 티스토리에 정리하고 있었기 때문에 잘 하고 있었다고 스스로 생각했다.

 

그리고 이번 조에서는 처음인 텍스트 RPG 게임 만들기 팀 프로젝트를 받았다. 기존의 개인과제에서 턴제 전투를 넣기만 하면 되기 때문에 조원들과 역할 분담을 잘 해서 만들면 큰 어려움이 없을 것이라고 생각했다. 우리 조는 스파르타 C# 강의를 5주차까지 완강하고 각자 정리 후, 금요일부터 팀 프로젝트를 제대로 시작하기로 했다. 그래서 오늘은 5주차 강의를 듣는 것에 집중했다.

 

● 강의 내용

1. 알고리즘

 - 문제를 해결하기 위한 단계적인 방법
 - 입력을 받아 원하는 출력을 생성하기 위한 절차
 - 주어진 입력에 대해 정확하고 일관된 결과를 제공해야 함
 - 효율적인 알고리즘은 컴퓨터 프로그래밍에서 매우 중요

 

2. Big O 표기법 : https://kkln2486.tistory.com/89

 

Big-O 표기법

● Big-O 표기법 - 알고리즘의 효율성을 나타내는 표기법 - 입력의 크기에 따라 알고리즘이 얼마나 많은 시간이나 공간을 필요로 하는지 설명 - Big-O 표기법은 알고리즘의 최악의 경우 성능을 나타

kkln2486.tistory.com

 

3. 시간 복잡도와 공간 복잡도 : https://kkln2486.tistory.com/83

 

시간 복잡도와 공간 복잡도

● 시간 복잡도 - 알고리즘이 문제를 해결하는데 걸리는 시간을 나타내는 척도 - 코드의 실행 시간을 실제 시간(초)로 측정하는 것이 아니라, 입력 크기에 대한 연산 횟수로 측정 - Big-O 표기법을

kkln2486.tistory.com

 

4. 정렬 알고리즘 : https://kkln2486.tistory.com/84

 

정렬 알고리즘

● 정렬 알고리즘 - 주어진 데이터 세트를 특정 순서로 배열하는 방법을 제공 1. 선택 정렬 - 배열에서 최소값 또는 최대값을 찾아 맨 앞 또는 맨 뒤와 교환하는 방법 - 시간 복잡도 : O(n^2) - 공간

kkln2486.tistory.com

 

5. 탐색 알고리즘 : https://kkln2486.tistory.com/85

 

탐색 알고리즘

● 탐색 알고리즘 - 데이터 집합에서 특정 항목을 찾는 방법을 제공 1. 선형 탐색 - 가장 단순한 탐색 알고리즘 - 배열의 각 요소를 하나씩 차례대로 검사 - 배열이 정렬되어 있지 않는 경우에 사

kkln2486.tistory.com

 

6. 그래프 : https://kkln2486.tistory.com/86

 

그래프 (Graph)

● 그래프 - 정점 (Vertex)과 간선 (Edge)으로 이루어진 자료 구조 - 방향 그래프와 무방향 그래프로 나뉨 - 가중치 그래프는 간선에 가중치가 있음 ● 그래프 탐색 방법 1. 길이 우선 탐색 (Depth-First Se

kkln2486.tistory.com

 

7. 그리디 알고리즘 : https://kkln2486.tistory.com/88

 

그리디 알고리즘

● 그리디 알고리즘 - 각 단계에서 가장 최적인 선택을 하는 알고리즘 - 각 단계의 최적인 선택이 최종적으로 최적인 선택이 아닐수도 있음 // 문제: 주어진 동전들로 특정 금액을 만드는데 필요

kkln2486.tistory.com

 

● 오늘의 회고

오늘 알고리즘 특강이 있었는데, 마침 강의도 알고리즘과 관련된 강의들이었다. 어제와 비슷하게 전체적으로 어려운 내용이었다. 그래도 예전에 한번씩은 공부했던 내용이었는데 제대로 정리를 한 적이 없어서 모두 새로 배운 기분이었다. 개발자는 프로그래밍을 할 때 가장 효율적인 알고리즘을 찾아내야 하는데, 시간 복잡도와 공간 복잡도를 계산하는 방법이 중요하다고 생각했다. 아직 100% 머리 속에 넣지는 못했지만, 점점 공부를 하면서 세부적인 내용을 하나씩 티스토리에 업데이트 할 예정이다. 내일은 강의를 모두 마무리하고, 팀 프로젝트를 시작하기 전, 최종적으로 정리를 할 것이다.

'Unity_2기 내일배움캠프 TIL' 카테고리의 다른 글

Unity_2기 3주차 (231117)  (0) 2023.11.17
Unity_2기 3주차 (231116)  (0) 2023.11.16
Unity_2기 3주차 (231114)  (1) 2023.11.14
Unity_2기 3주차 (231113)  (1) 2023.11.13
Unity_2기 2주차 (231110)  (0) 2023.11.10