[알고리즘] 정렬, 버블정렬(Bubble sort) 버블 정렬에 들어가기에 앞서, 정렬이 무엇인지 알아보겠습니다. * 정렬(sorting) : 데이터를 정해진 순서대로 나열하는 것. 1. 버블 정렬(Bubble sort) : 인접한 두개의 데이터를 비교해서 앞의 데이터가 더 작게 두 데이터의 자리를 바꾸는 정렬 알고리즘. 2. 버블 정렬 코드 구현 GitHub for문을 2번 사용했으므로 시간복잡도는 O(𝑛2)입니다. 최악의 경우에는 𝑛∗(𝑛−1)/2 번 반복해서 코드를 읽습니다. [Computer Science]/[알고리즘] 2022.02.01
[알고리즘] 공간복잡도 * 시간 복잡도 : 알고리즘이 실행되는 상대적인 시간 https://geukggom.tistory.com/159 [알고리즘] 점근 표기법(Asymptotic Notation)과 빅 오의 사용 방법 1. 점근 표기법(Asymptotic Notation) : 시간복잡도를 근사치로 표현한 것입니다. 아래에서 빅 오를 예시로 들어 어떤 식으로 시간복잡도를 계산하는지에 대해 알아볼건데, 컴퓨터의 성능과는 관계없 geukggom.tistory.com 1. 공간 복잡도란? : 알고리즘이 실행될 때 필요한 저장 공간. 효율적인 알고리즘은 시작부터 결과가 나올 때까지 실행에 걸리는 시간이 짧고(작은 시간복잡도), 연산하는 컴퓨터 내의 메모리 자원을 덜 사용하는 것(작은 공간 복잡도)입니다. 시간복잡도와 공간복잡도는 반비.. [Computer Science]/[알고리즘] 2022.01.31
[C# 기초] #21. 힙(Heap) 1. 힙이란? : 완전 이진 트리(Complete Binary Tree)의 일종. 여러 값의 데이터들 중 최대값과 최소값을 빠르게 찾아낼 수 있는 자료구조입니다. (시간복잡도로 따지면 O(logn)이 걸림) * 힙의 특징 - 중복 값을 허용 - 루트가 최대값(새로운 데이터가 추가될 때 부모노드와 크기를 비교해 크기가 더 큰 값을 부모노드로 올리기 때문) - 새로운 데이터를 추가할 때 작은 레벨 순서대로 채움(왼쪽부터) 2. 이진 탐색 트리와 힙의 차이 바로 이전 게시물에서 이진 탐색 트리에 대해 알아보았는데요, 힙과의 차이점에 대해 알아보겠습니다. https://geukggom.tistory.com/162 * 공통점 : 둘 다 이진 트리. * 차이점 - 힙은 이진 탐색 트리와 달리 중복 값을 허용. - .. [Unity]/[C#] 2022.01.30
[C# 기초] #20. 트리(Tree), 이진트리, 이진 탐색 트리 1. 트리(Tree)란? : 계층적인 자료를 표현하는 대표적인 자료구조. 검색 알고리즘을 위해 주로 사용됩니다. 가장 위에 하나의 루트(Root)로부터 출발하여 그 밑에 0개 이상의 여러 자식 노드들을 가지는 구조를 가지고 있습니다. * 하나의 자식은 하나의 부모만 가질 수 있음. 2. 트리 구조에서 자주 사용되는 용어 * 루트(Root) : 트리의 가장 꼭대기 노드 * 간선(Edge) : 두 노드를 잇는 링크 * 브랜치(Branch) : 한 노드에서 갈라져 나온 자식 노드의 수 * 형제(Sibling) : 부모가 같은 자식 노드들 * 리프(Leaf) : 자식노드가 없는 하단의 노드 * 높이(Height) : 특정 노드에서 루트 사이의 길이 * 깊이(Depth) : 루트 노드에서 특정 노드까지의 길이 *.. [Unity]/[C#] 2022.01.29
[연유와의 나들이] 6. 개발 중(5) : 다중 답 입력하는 퀴즈, 가벼운 미니게임 생성 이 씬에 나오는 퀴즈는 여러가지 답을 빈칸들에 동시에 알맞게 입력해야 통과입니다. 이전 포스팅의 퀴즈에서 했던 InputField에 답을 입력할 수 있도록 했으며, List에 InputField들을 넣고 '목줄 찾기' 버튼을 누르면 for문을 이용해 List의 InputField에 답을 대조하도록 했습니다. 만약 정답이 아닌 칸이 있을 경우, 글씨의 색을 빨간색으로 바꿔 오답임을 알 수 있게 했습니다. 퀴즈를 맞추고 나면 나뭇잎을 제치고 리드줄을 획득하는 씬이 나옵니다. 나뭇잎을 드래그하면 나뭇잎은 마우스 위치를 따라오게 됩니다. 각각의 나뭇잎에는 Polygon Collider 2D 컴포넌트가 붙어있으며, 목줄의 Collider에 나뭇잎의 Collider가 모두 떨어지게 되면 다음 씬으로 넘어갑니다. 이.. [게임 제작기]/[연유와의 나들이] 2022.01.28
[연유와의 나들이] 5. 개발 중(4) : 직접 답을 입력하는 퀴즈 등 생성 보안등 번호를 따라가는 장면은 버튼을 눌러 페이지를 이동할 수 있게 했으며, 강아지 연유가 도망가는 애니메이션을 넣어주었습니다. * 강아지가 뛰어가는 모습은 배경이 투명한 png 리소스로 바꿨으며, 왼쪽 위 번호를 클릭하면 해당 위치의 사진이 뜨도록 했습니다. 다음 나오는 퀴즈에서는 플레이어가 정답을 직접 입력할 수 있도록 해주었습니다. 텍스트를 플레이어가 직접 입력하는 방법에 대해서는 따로 포스팅을 했습니다. https://geukggom.tistory.com/135 [Unity] 직접 텍스트 입력하는 방법(feat. Input Field UI) 안녕하세요, 극꼼입니다. 오늘은 플레이 중 직접 텍스트를 입력하는 방법에 대해 알아보겠습니다. 먼저 캔버스에 Input Field UI를 만들어줍니다. 아래와.. [게임 제작기]/[연유와의 나들이] 2022.01.28
[연유와의 나들이] 4. 개발 중(3) : 버튼으로 하는 퀴즈 패널 등 생성 이어서 두번째 씬의 퀴즈패널을 만들어보겠습니다. 퀴즈 -> sceneNum = 3 * 어떤 퀴즈인지는 스포가 될 수 있어 가렸습니다. 퀴즈 패널의 규칙은 다음과 같습니다. 1. 스토리 순서에 따라 다른 퀴즈가 보여짐. 2. 답을 눌렀을 때, 정답이 아닌지가 표시되며, 정답이 아닐 경우 점수가 깎임. 3. 같은 오답을 두번 눌렀을 경우 점수가 계속 깎이진 않음. 4. 힌트를 누르면 해당 퀴즈에 맞는 힌트를 보여줌. * 힌트 버튼을 누르면 광고를 하나 본 후 힌트를 볼 수 있습니다. 주인공이 강아지를 주시하는 스토리 진행 -> sceneNum = 4 강아지의 주인을 행인에게 물어봄(사람들 클릭) -> sceneNum = 5 주인공이 친구들과 채팅방에서 이야기하려함 -> sceneNum = 6 친구들과의 채팅.. [게임 제작기]/[연유와의 나들이] 2022.01.27
[연유와의 나들이] 3. 개발 중(2) : 채팅창, 스토리 패널 생성 오랜만에 게시물을 다시 업로드 하네요 ㅎㅎ 현재 앱의 상태는 베타테스트를 마친 상태이며, 개인정보처리방침이 통과되길 기다리고 있는 상태입니다. 곧 될거라는 제 맘과 다르게 계속 승인거부가 이어져서..ㅜㅜ 다음 승인을 기다리며 작성했뒀던 제작기를 마저 올려보도록 하겠습니다. 두번째 챕터의 씬 구성은 다음과 같습니다. 더보기 인트로 영상 -> sceneNum = 0 친구들과의 채팅 -> sceneNum = 1 채팅 이후 가벼운 스토리 진행 후, -> sceneNum = 2 퀴즈가 하나 나옵니다. -> sceneNum = 3 먼저 video player를 이용해 인트로 영상을 넣은 다음 채팅창을 만들어주도록 하겠습니다. 채팅의 내용은 미리 넣어둔 csv파일을 읽어와 자동으로 작성해줍니다. 채팅창의 규칙은 다음.. [게임 제작기]/[연유와의 나들이] 2022.01.27
[C# 기초] #19.Graph - Graph의 정의, 종류, 구현 방법 1. Graph란? 정점(vertex(V))과 그 정점을 연결하는 간선(edge(E)을 하나로 모아 놓은 자료구조. 연결되어 있는 객체 간의 관계를 표현할 수 있는 자료구조입니다. G = (V, E) (ex) 지도, 지하철 노선도, 전기 회로의 소자들, 도로 등. 2. Graph의 종류 1. 무방향 그래프 (Undirected graph) : 두 정점을 연결하는 간선에 방향이 없는 그래프. 두 정점의 양 방향으로 이동 가능. 2. 방향 그래프 (Directed graph) : 두 정점을 연결하는 간선에 방향이 있는 그래프. 특정 방향으로만 이동 가능. 3. 가중 그래프 (Weighted graph) : 정점을 연결하는 간선에 가중치(Weight)가 있는 그래프. 네트워크(Network) 라고도 함. 4... [Unity]/[C#] 2022.01.26
[C#] .NET의 연결 리스트 : LinkedList<T> LinkedList : 이중 연결 리스트로 되어 있으며, 리스트 노드는 LinkedListNode 클래스를 사용. 노드를 추가하기 위한 AddFirst(처음), AddLast(끝), AddBefore(특정 노드 앞), AddAfter(특정 노드 뒤) 등 다양한 메서드가 있음. * 연결리스트가 어떤 구조로 되어 있는지에 대한 자세한 내용은 아래 링크에 있습니다. https://geukggom.tistory.com/160 LinkedList의 메서드 종류 Count LinkedList에 포함된 노드의 수를 가져옴 First LinkedList의 첫번째 노드를 가져옴 Last LinkedList의 마지막 노드를 가져옴 AddFirst()(처음), AddLast()(끝), AddBefore()(특정 노드 앞),.. [Unity]/[C#] 2022.01.25