전체 글 151

내일배움캠프 26일차 TIL - 자료구조 특강 정리

자료구조를 배우는 이유 - 같은 구조라도 성능차이가 발생하기 때문컴퓨터 공학의 핵심 시간 복잡도알고리즘의 동작에 필요한 연산이 데이터의 갯수에 따라 대략 어느정도인가?주로 빅오 (big O) 표기법으로 나타냄$n^{2} +  2n + 1 $ 와 같은 경우, 최대차항만 남겨 O( $n^{2}$ ) 으로 표기한다, 최고차항의 상수도 무시할 수 있다.시간 복잡도에 따라 걸리는 시간은 대략 이러한 그래프를 보입니다.지수함수, 팩토리얼 함수 형태의 시간복잡도가 나타나는 연산은 되도록 피해야하며, 로그 - 선형 함수 이하의 연산이 가장 이상적입니다. 배열 Array모든 자료구조의 기본과 같은 형태크기를 정한만큼, 저장공간을 부여Length() 메서드의 경우, 배열의 크기를 반환하는 메서드데이터 지역성배열 데이터 참..

내일배움캠프 25일차 TIL - 알고리즘 문제 풀이

leetcode에서 제공하는 알고리즘 문제중, 하나를 풀고 해설을 읽어보았습니다. 문제는 이러합니다. 정수형 숫자 배열 height 가 주어지며, 가로의 길이는 모두 1이라고 할때, 여기서 넓이가 가장 큰 직사각형을 구하는 문제입니다.이때, 배열의 조건은 다음과 같습니다.1 0 먼저, 처음 저의 풀이는 자신의 우측 배열을 확인한 후, 이 배열의 값이 자신보다 크거나 같으면 길이를 1 늘리고, 그렇지 않으면 반복문을 종료합니다.이후 저장된 길이와 자신의 높이를 곱해서 넓이를 구한 뒤, 저장된 최대값과 비교하여 저장합니다. 이 과정을 배열 전체에 반복하여 가장 큰 넓이를 구합니다.public class Solution { public int LargestRectangleArea(int[] heights..

내일배움캠프 24일차 TIL - 로컬 멀티플레이 인풋 시스템

유니티 입문주차 프로젝트 진행중, 로컬 멀티플레이 기능을 설계하면서 발생한 문제입니다.문제상황캐릭터를 생성했을 때, 1P 캐릭터는 정상적으로 조작이 가능하지만, 2P 는 조작이 불가능한 상황이 발생했습니다.당시, 캐릭터가 같은 액션 에셋을 공유하고, 액션맵을 바꾸는 방식으로 구현하려고 하였습니다. 당시 처음 시도했던 조작 코드입니다.public void IsPlayer2(bool isPlayer2){ if (isPlayer2) { playerInput.defaultActionMap = "Player2P"; } else { playerInput.defaultActionMap = "Player1P"; }} 시도해본 것처음 시도해본것은 캐릭터의 조작을 ..

내일배움캠프 23일차 TIL - Input System 특강 정리 2

New Input System 을 통해 UI 의 버튼등에 상호작용할 수 있는 방법과, Input System의 세부 설정입니다. Standalone Input ModuleUI 를 생성하면, EventSystem 오브젝트가 생성되고 해당 오브젝트를 통해 UI가 작동하게됩니다.이때, Input Manager 를 설치하게 되면 이벤트 시스템의 입력 모듈 대체 여부가 발생합니다.Replace with InputSystemUIInputModule 버튼을 누르게 되면 아래와 같이 변경됩니다.이때, Action Asset에 Input System에서 기본으로 제공하는 액션 에셋이 지정되며, 에셋을 변경해서 개발자가 원하는 방식으로 UI를 조작할 수 있습니다. 기본 제공 액션 에셋을 이러합니다. Action Prope..

내일배움캠프 22일차 TIL - Input System 특강 정리

Input System 은 기존 Input Manager를 대체하는 시스템으로 사실상 기존 Input Manager 가 레거시 시스템이라고 볼 수 있습니다. 다이렉트 방식, 임베디드 방식, 액션 에셋 방식, C# 제너레이트 방식 4종류의 방법으로 사용할 수 있습니다. 입력을 받는 스크립트는 UnityEngine.InputSystem 을 사용해야 합니다.using UnityEngine;using UnityEngine.InputSystem;public class InputSystemTest : MonoBehaviour{ } 다이렉트 방식InputSystem 에서 지원하는 입력방식의 클래스를 변수로 선언하고, 변수를 통해 직접 입력받는 시스템 방식 입니다.이때, 클래스 변수에는 Keyboard.curre..

내일배움캠프 21일차 TIL - 객체지향 특별강의 정리

절차지향 - 코드간의 순서객체지향 - 객체간의 관계-> 비율의 차이일뿐, 절대적인것은 아님 Class - 문법Instance - 메모리에 할당된 객체/클래스Object - 단위, 개념 클래스 - 객체에 필요한 속성과 기능을 관리, 문법으로 표현 (붕어빵 틀)인스턴스 - 메모리에 할당된 클래스 (붕어빵)오브젝트 - 추상화된 개념 (단위) 객체는 기능을 제공한다 - 캡슐화이때, 기능을 담은 캡슐이 클래스 추상화 - 공통 분모로 묶을수 있는것을 클래스로 묶는 작업 상속을 통해서 다양한 클래스를 만든다 - 다형성 상속 - 나의 클래스로 관리가 불가능한 내용을 쪼개서 구현 자식클래스 - 부모 클래스를 상속받아 만들어진 클래스들파생클래스 - == 자식클래스 캡슐화, 추상화, 상속, 다형성 - 객체지향의 특징 4가지..

내일배움캠프 20일차 TIL - abstrack class, Interface 사용 구분

수준별 학습에서 abstrack 와 interface 의 사용 차이점에 대해 그림으로 구분해보고자 합니다. abstrack class 는 추상클래스로, 메서드를 선언하지만 그 내용을 구현하지 않는 상속을 위한 클래스 입니다.interface 는 추상클래스와 비슷하게 메서드의 이름을 선언하고 내용을 구현하지 않지만, 추상클래스와는 다른점이 있습니다. 먼저 가장 큰점은 abstrack class 는 클래스이기 때문에, 이 클래스를 부모 클래스로 가지는 클래스는 다른 클래스를 부모로 가질 수 없습니다(단일상속). interface의 경우, 한번에 여러개의 인터페이스를 상속받을 수 있으며, 추상클래스를 상속받은 상태에서도 인터페이스를 추가로 상속받을 수 있습니다. 이 두가지 기능을 사용할때는 주로 이러한 기준을..

내일배움캠프 19일차 TIL - New Input System : 1회만 입력받기

New Input System 으로 버튼 입력을 사용해보면 Press Only 에서는 누를때 true, Release Only 에서는 뗄때 falsePress And Release 에서는 누를때 true, 뗄때 false를 반환하는것을 볼 수 있습니다.//스페이스바 입력시 bool 값 매개변수로 받음public void OnInteracte(InputValue value){ InteracteInput(value.isPressed); Debug.Log(value.isPressed);} 이 경우, 변수나 프로퍼티를 통해 외부에서 입력을 인식할경우, 눌렀다 뗄때까지 입력이 연속으로 들어가는경우가 발생합니다.//입력받은 값을 변수로 전달public void InteracteInput(bool inte..

내일배움캠프 18일차 TIL - 개인프로젝트 스파르타타운 만들기 진행상황

개인프로젝트 - 스파르타 타운 만들기의 필수과제를 모두 제작하여 TIL로 진행상황을 올려봅니다. 먼저 폰트와 에셋은 저작권이 없는것으로 제작하였습니다.https://fonts.google.com/specimen/Jua?subset=korean&lang=ko_Kore Jua - Google FontsJua is a Korean and Latin fontfonts.google.comhttps://www.kenney.nl/assets/rpg-urban-pack RPG Urban Pack · KenneyDownload this package (480 assets) for free, CC0 licensed!www.kenney.nl캐릭터캐릭터는 타일맵에 포함되어있던 6종의 캐릭터를 활용하였으며, 각각 프리팹으로 만..