본문 바로가기

TIL

[TIL]2024-2-02 / 30일차 - 강의 영상 끝마치기

 

1. 오늘의 알고리즘 코드카타 - 직사각형 별찍기

 

답안 : 

using System;
public class Example
//스네이크 게임과 틱택토 만들면서 썼던 맵 깔기가 생각난다.
//for문으로 *를 a만큼 찍고 b만큼 /n 줄을 넘기게 만들기.
{
    public static void Main()
    {
        String[] s;

        Console.Clear();
        s = Console.ReadLine().Split(' ');

        int a = Int32.Parse(s[0]);
        int b = Int32.Parse(s[1]);

        //*찍기가 끝나면 b만큼 줄 바꿔주기
        for(int j = 0; j < b; j++)
        {
            //a만큼 *을 찍기
            for(int i = 0; i < a; i++)
                Console.Write("*");
            Console.WriteLine();
        }
    }
}

 

또 2차원 배열에다가 이중 for문이지만 어제 해본 만큼 이번에는 어제보다는 일찍 풀 수 있었다.

 


 

2. 오늘 공부 정리

 

아무래도 공부 기간이라 작업 기간 보다는 적을 것이 적다.

공부한 내용을 일부 적어두려고 한다.

 

2-1 스탠다드 반 세션 강의 내용

 

1. 자료구조
2. 배열
3. 리스트
4. 스택
5. 큐
6. 딕셔너리
7. 제너릭
8. 오브젝트 풀
9. 10000번의 Update()호출

 

이 자료구조 개념들이 어렴풋이만 이해하고 있던 내용들을 확실히 잡아주어 좋았다.

-배열 : 동일한 자료형 원소들이 순차적 저장됨, 정적 메모리 관리 유의 / 선형 구조라 접근과 검색이 빠름

-리스트 : 동적 데이터 처리에 강점, 순차적으로 연결된 데이터 구조, 주소 재배열로 데이터 조작 가능, 오버헤드 발생 가능

-스택 : 후입선출의 구조, Push / Pop (UI팝업에서 활용 가능)

- : 선입선출의 구조 (흔히 큐돌린다의 그 큐)

-딕셔너리 : 키-값 쌍을 저장하는 자료구조 각 키는 고유 식별자를 연관 값을 저장, 데이터 인덱싱 등에 좋다.

-제너릭 : 다양한 자료형을 일반화된 코드로 작성, 재사용성과 안정성이 높다.

 

제너릭 오브젝트 풀을 만들어 보라는 내용을 개인과제 때 적용해 볼 방법을 찾아봐야겠다.

 


2-2 강의 영상 내용

오늘 강의 영상에서 인벤토리 구현 내용은 되게 많고 어려우면서도 중요한 내용이 많았던 느낌이다.

나중에도 계속 찾아봐야 할 내용이다.

 

조작 방식을 플레이어 인풋, Invoke Unity Events로 만드는 방식은 나름 구조를 익히면 편해보였다.

+ 조작 궁금증

공격을 마우스 1회 클릭 당 1회로 되있었는데 이를 꾹 누르면 지속적으로 나가게 할 수 없을까-

 

또 비주얼에 관심있는 사람으로서 포스트 프로세싱을 조금이나마 다뤄준 내용이 좋았다.

 

 

 

그리고 처음으로 적 Ai와 관련된 내용이 나와 집중하게 되었다.

 

 

Ai는 중요하면서도 어려운 부분인데, 적 행동과 네비게이션과 관련된 기본적인 내용을 알려주어

혼자서 움직이는 적을 보니 되게 재밌었다.

 

물론 코드는 어려웠다... 이 부분은 거의 머리가 멍한 상태로 받아적기만 했다.

 


 

2-3 추가 공부

 

System.Linq

이 부분은 정말 공부를 안하면 더이상 코드를 볼 수 없을 것 같다.

기본적인 개념은 알겠지만 아직도 직접 코드를 쓰는건 힘들다.

클래스
Enumerable	
IEnumerable<T>을 구현하는 개체를 쿼리하기 위한 static(Visual Basic의 경우 Shared) 메서드 집합을 제공합니다.

EnumerableExecutor	
식 트리를 나타내고 식 트리를 다시 작성한 후에 실행하는 기능을 제공합니다.

EnumerableExecutor<T>	
식 트리를 나타내고 식 트리를 다시 작성한 후에 실행하는 기능을 제공합니다.

EnumerableQuery	
IEnumerable 데이터 소스로 EnumerableQuery을 나타냅니다.

EnumerableQuery<T>	
IEnumerable<T> 데이터 소스로 IQueryable<T> 컬렉션을 나타냅니다.

Lookup<TKey,TElement>	
각각 하나 이상의 값에 매핑된 키의 컬렉션을 나타냅니다.

OrderedParallelQuery<TSource>	
정렬된 병렬 시퀀스를 나타냅니다.

ParallelEnumerable	
ParallelQuery{TSource}를 구현하는 개체를 쿼리하기 위한 메서드 집합을 제공합니다. Enumerable과 같습니다.

ParallelQuery	
병렬 시퀀스를 나타냅니다.

ParallelQuery<TSource>	
병렬 시퀀스를 나타냅니다.

Queryable	
IQueryable<T>을 구현하는 데이터 구조체를 쿼리하기 위한 static(Visual Basic의 경우 Shared) 메서드 집합을 제공합니다.
인터페이스
IGrouping<TKey,TElement>	
공통 키가 있는 개체의 컬렉션을 나타냅니다.

ILookup<TKey,TElement>	
키를 IEnumerable<T> 값 시퀀스에 매핑하는 데이터 구조체의 인덱서, 크기 속성 및 부울 검색 메서드를 정의합니다.

IOrderedEnumerable<TElement>	
정렬된 시퀀스를 나타냅니다.

IOrderedQueryable	
정렬 작업의 결과를 나타냅니다.

IOrderedQueryable<T>	
정렬 작업의 결과를 나타냅니다.

IQueryable	
데이터 형식이 지정되지 않은 특정 데이터 소스에 대한 쿼리를 실행하는 기능을 제공합니다.

IQueryable<T>	
데이터 형식이 알려진 특정 데이터 소스에 대한 쿼리를 실행하는 기능을 제공합니다.

IQueryProvider	
IQueryable 개체가 설명하는 쿼리를 만들고 실행하는 메서드를 정의합니다.
열거형
ParallelExecutionMode	
쿼리 실행 모드는 쿼리를 병렬화할 때 시스템에서 성능 저하를 처리하는 방식을 지정하는 힌트입니다.

ParallelMergeOptions	
쿼리에 사용할 기본 출력 병합 형식을 지정합니다. 다시 말해, PLINQ가 다양한 파티션의 결과를 단일 결과 시퀀스로 병합하는 방법을 나타냅니다. 이것은 힌트일 뿐이며 모든 쿼리를 병렬화하는 경우 시스템에서 무시될 수 있습니다.

 

이번 주는 너무 힘들었다. 다음 주 팀플을 생각하면 주말에는 열심히 쉬어야 겠다...