본문 바로가기

전체 글

(195)
[ 자료구조 ] 정렬 - 03 . 삽입 정렬 [삽입 정렬] [ 삽입 정렬이란 ] 데이터 집합을 순회하면서 정렬이 필요한 요소를 뽑아 이를 적당한 곳에 삽입하여 정렬해 나가는 알고리즘 . [ 정렬과정 ] 오름차순 정렬임을 가정했을때 삽입 정렬은 다음의 순서로 이루어 진다 . 데이터 집합에서 정렬 대상이 되는 요소를 선택한다 . 정렬 대상은 왼쪽 부터 선택, 범위는 2개에서 시작하여 알고리즘 반복 횟수가 늘어날때마다 1개씩 커진다 . ( 정렬 대상의 최대 범위는 데이터 집합의 크기 -1 ) 정렬 대상 가장 오른쪽의 값이 가장 큰 값을 가지고 있는지 확인한다 . 아니라면 해당 요소를 뽑아 적절한 위치 (가장 왼쪽을 기준으로 했을때 더 작은 요소가 없는 위치)를 찾는다 . 정렬 대상 내에서 삽입할 값보다 큰 값을 갖는 모든 요소를 한자리씩 오른쪽으로 이동..
[ 자료구조 ] 정렬 - 02 . 버블 정렬 [ 버블 정렬 ] [ 버블 정렬 ] 알고리즘이 데이터를 정렬하는 과정이 물 속 깊은 곳에서 일어난 거품이 수면을 향해 올라오는 모습과 같아 붙여진 이름이다 . 버블 정렬은 데이터 집합을 순회하면서 집합내의 이웃 요소들끼리의 교환을 통해 정렬을 수행한다 . [ 버블 정렬의 과정 ] 교환전 요소 둘 사이를 비교, 이웃끼리 올바른 위치에 있는지 확인한다 . (오름차순이라면 왼쪽은 오른쪽 보다 작다) 올바르지 않다면 두 요소의 위치를 바꾸어 준다 . 첫번째 , 두번째 요소간의 비교가 끝났다면 두번째 , 세번째 요소간의 비교를 수행한다 . 해당 과정의 반복으로 마지막 요소는 올바른 위치에 있게 된다 . 마지막 요소를 제외한 나머지 집합에서 다시 버블 정렬을 수행한다 . 위 과정의 반복으로 정렬이 완료된다 . [ ..
[ 자료구조 ] 정렬 - 01 . 정렬 알고리즘 [ 정렬 알고리즘 ] [ 알고리즘 ] 문제를 해결하기 위한 일련의 명령이나 반복되는 절차 . [ 해결 할 일 ] 3만명의 학생의 성적 데이터중 석차 17,213등인 학생의 번호를 알아내라 =>학생들을 점수 오름차순으로 정렬한 후 ,17213번째를 고르면 된다 . [ 정렬 ] 정렬은 "물건 등을 가지런히 늘어 세우다"라는 뜻을 가지고 있다 . =>정렬의 목적은 찾으려고 하는 것을 쉽게 찾는 것이다 . 정렬 알고리즘 역시 데이터의 나열이 목적이 아닌 찾고자 하는 데이터를 빠르고 쉽게 찾을 수 있게 함이 목적이다 . 정렬 알고리즘 중 활용도가 높은 3가지는 다음과 같다 . 버블 정렬 삽입 정렬 퀵 정렬
[UI Tool Kit] 04 . 레이아웃과 트랜지션 애니메이션 [ UI 오버레이 ] [ Bottom Sheet ] 버튼을 눌러 화면 하단에서 UI가 올라오는 것을 Bottom Sheet / Action Sheet이라고 한다 . 특징은 기존 UI를 건들지 않고 오버레이 함이 특징이다 . [ 부모 추가 ] 기존 UI의 부모가 될 Visual Element를 추가한다 . 문제는 Size를 100%로 함에도 화면을 덮지 못하고 기존 UI를 밀어올린다 . [ 포지션 : Relative / Absolute ] [ 상황 재현 ] 다음과 같은 상황에서 파란 UI는 중앙에 그려져야 한다 . 이렇게 배치됨은 flex의 설정 때문이다 .. UGUI의 LayoutGroup에 추가된것과 같은 상황인데 , 이떄 Layout Element의 Ignore Layout과 같은 설정이 필요하다 ...
[UI Tool Kit] 03 . 레이아웃과 버튼 애니메이션 [초기 세팅] [UXML 생성] Create => UI ToolKit => UI Document 생성 [Panel Setting 생성] Create - UI ToolKit - Panel Settings Asset생성 : Panel Setting은 UXML로 만든 UI를 게임씬에 그리기 위한 틀 (Canvas) . 패널 전체 테마 텍스트 설정 가능. ScaleMode는 화면에 비율에 따라 어떠한 크기로 UI그릴지 정한다 = Canvas Scaler [씬에 적용] 게임오브젝트 생성 , UI Document 컴포넌트 추가 , Source Asset에 UXML 연결 / Panel Setting 연결 [UI Builder에서 시작] [테마 설정] Vire Port에서 우측 상단 Unity Default Runti..
[유니티] UI Tool Kit 01 . UI Tool Kit에 관하여 [ 유니티의 UI 제작 방법 ] [IMGUI] 스크립트만으로 제작하는 방식 . OnGUI함수에 GUI 관련 라이브러리를 사용 , 인터페이스 요소 생성,배치 [UGUI] 유니티 제공 UI 패키지를 활용하는 방식 . 게임오브젝트 기반 . [UI Tool Kit] 유니티의 최신 UI 시스템으로, 플랫폼 전반에서 성능을 최적화하도록 설계되었으며 표준 웹 기술을 기반으로 한다. UI 툴킷을 사용하면 Unity 에디터용 확장을 생성하고 게임 및 애플리케이션을 위한 런타임 UI를 생성할 수 있다. [ UI 툴킷의 특징 ] [범용성] 개발의 범용성 : 널리 사용되고 있는 웹 개발과 상당히 흡사한 방식 사용 . 누구나 쉽게 인터페이스 제작 가능 적용의 범용성 : UI ToolKit은 유니티 에디터 윈도우를 직접 제작가능..
[ 자료구조 ] 트리 - 04 . 분리 집합 [분리집합이란] [분리집합] 교집합을 갖지 않는 집합 (원소의 모임)을 말한다 . 분리집합은 두개 이상의 집합을 일컬을때만 사용 가능한 개념이다 . [분리집합과 트리] 분리집합은 집합들간의 교집합을 허락하지 않기 때문에 서로 구분되어야 하는 데이터 집합을 다룰때 유용하다 . 원소 혹은 개체가 어느 집합에 소속되어 있는가?라는 정보를 바탕으로 하는 알고리즘에 응용 가능하다. 이와같이 어떤 한 원소가 속한 집합을 알아내는 것을 집합 탐색이라고 한다 . [분리집합의 표현] [분리집합의 표현] 지금까지 본 일반 / 이진트리는 모두 부모가 자식을 가리키는 포인터를 가지고 있었다 . 분리집합은 이와 다르게 자식이 부모를 가리킨다 . 즉 , 루트 노드는 집합 그 자체이고 , 루트 노드를 포함한 트리 내의 모든 노드들..
[ 유니티 ] UI Tool Kit 02 . 첫 런타임 UI 만들기 [첫 런타임 UI 만들기] 유니티 도큐먼드를 참고하였다 . [UI ToolKit] UI ToolKit을 사용하여 캐릭터 선택 화면을 만들어 본다 . UI 요소 및 템플릿 만들기 씬을 설정하는 방법 UI에 스크립팅 로직을 연결하기 등을 다루며 , USS 를 통한 스타일링은 다루지 않는다 . [ 단계 ] 메인 UI 뷰 만들기 씬 설정 표시할 샘플 데이터 생성 메인 UI 뷰를 위한 컨트롤러 생성 리스트 엔트리 UI 템플릿 생성 리스트 엔트리 UI를 위한 컨트롤러 생성 사용자의 선택에 응답 [ 01 . 메인 UI 뷰 만들기 ] [시스템] 최종화면은 두개의 개별 UI 템플릿 (UXML) 로 구성된다 . (메인 / 리스트 엔트리 템플릿) 메인 UI 뷰는 캐릭터 이름이 나열된 리스트 / 선택한 캐릭터의 세부 정보 /..